Увеличить имя библиотеки, отсутствующий тег версии - PullRequest
1 голос
/ 16 февраля 2011

Я построил надстройку в соответствии с документацией, используя:

bjam.exe toolset=msvc-9.0 variant=release link=shared stage

Это дает мне все библиотеки на стадии папок. Я получаю 3 файла для каждого пакета повышения, например: boost_regex-vc90-mt-1_45.dll<br> boost_regex-vc90-mt-1_45.lib<br> boost_regex-vc90-mt.lib

Что такое файл lib без тега версии? В чем разница между boost_regex-vc90-mt-1_45.lib и boost_regex-vc90-mt.lib?

В документации повышения говорится следующее:
"Расширение: определяется в соответствии с обычным соглашением операционной системы. На большинстве платформ в стиле Unix расширениями являются .a и .so для статических библиотек (архивов) и разделяемых библиотек, соответственно. В Windows .dll обозначает разделяемую библиотеку и .lib обозначает статическую или импортируемую библиотеку. Там, где это поддерживается наборами инструментов в вариантах unix, добавляется полное расширение версии (например, «.so.1.34»), и символическая ссылка на файл библиотеки, названная без конечного номера версии, будет также будет создан. "
http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html#library-naming

Файл без тега версии является символической ссылкой на файл библиотеки? Символические ссылки в Windows? Я не понимаю.

1 Ответ

1 голос
/ 17 февраля 2011

Полагаю, это копия на Windows.Сценарий компоновки пытается создать символическую ссылку, как это делается в Unix, но поскольку он не поддерживается в Windows, он определяется как копия.

В Unix у вас обычно есть libboost_regex.so как символическая ссылка на libboost_regex.so.1.45.0.Компилятор ищет libboost_regex.so, считывает ссылку и сохраняет полное имя в двоичном файле, поэтому динамический компоновщик загружает libboost_regex.so.1.45.0 для этой программы, даже если libboost_regex.so.1.46.0, но новые программы связаны с последней версией.Сценарий сборки, кажется, пытается максимально эмулировать это поведение в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...