Подтвердить что ты не робот

Создание Boost libs - разница между параметрами runtime-link и link

Я пытаюсь создать библиотеки boost в Windows 7 с помощью MSVC (VS 2010).

В параметрах командной строки bjam я встречал опции runtime-link и link. Я хотел бы знать, как они используются и какова их точная разница.

Я создал библиотеку Boost Regex, используя эту командную строку

bjam --with-regex variant = release --build-options = complete

он создал эти файлы:

1) boost_regex-vc100-mt-1_47.dll(библиотека импорта: boost_regex-vc100-mt-1_47.lib)

2) libboost_regex-VC100-т-1_47.lib

3) libboost_regex-VC100-т-ы-1_47.lib

4) libboost_regex-VC100-s-1_47.lib

В чем разница между 2 и 3 файлами .lib? Оба из них - статические библиотеки. Я прошел через Boost doc, но не нашел в этом объяснений.

ТИА

4b9b3361

Ответ 1

runtime-link относится к тому, как связана ваша среда выполнения компилятора. То есть, это соответствует опции VC Multithreaded vs. Multithreaded DLL. Runtime означает компоненты, необходимые для использования стандартных библиотек, доступных с вашим компилятором.

В какой-то момент вы, вероятно, видели файлы динамической ссылки: MSVCRTXX.DLL (время выполнения C) и MSVCPXX.DLL (стандартная библиотека С++), MFCXX.DLL (основные классы MFC). Статическими аналогами являются LIBC и LICBP (см. здесь для таблицы библиотеки)

Опция runtime-link, используемая при создании Boost, должна соответствовать параметру, когда вы используете для своего клиентского кода. В противном случае вы получите ошибки из-за несоответствия времени выполнения либо во время соединения, либо при запуске вашей программы.

При создании вашей программы для использования динамической среды исполнения ссылок при развертывании приложения необходимо включить VC-распространяемый.

link относится к тому, как будет связана библиотека повышения, с которой будет связано ваше здание, либо как статическая, либо динамическая библиотека ссылок.