Boost: хотя и скомпилирован, отсутствует библиотека - PullRequest
0 голосов
/ 09 января 2011

Я скомпилировал Boost и использую его в проекте Visual C ++.В какой-то момент я начал получать следующую ошибку:

1>LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-sgd-1_45.lib'

AFAIK У меня правильно настроена конфигурация компоновщика.Я искал библиотеку и нашел несколько близких совпадений:

$(LIB_BOOST)\stage\lib\libboost_filesystem-vc100-mt-gd-1_45.lib
$(LIB_BOOST)\stage\lib\libboost_filesystem-vc100-mt-gd.lib
$(LIB_BOOST)\stage\lib\libboost_filesystem-vc100-mt-1_45.lib
$(LIB_BOOST)\stage\lib\libboost_filesystem-vc100-mt.lib
$(LIB_BOOST)\bin.v2\libs\filesystem\build\msvc-10.0\release\link-static\threading-multi\libboost_filesystem-vc100-mt-1_45.lib
$(LIB_BOOST)\bin.v2\libs\filesystem\build\msvc-10.0\debug\link-static\threading-multi\libboost_filesystem-vc100-mt-gd-1_45.lib

(обратите внимание на отсутствующие 's' в большинстве из них)

Что представляет собой отсутствующие 's'?Что означают эти похожие, но разные библиотеки?Почему я скучаю по нему, хотя я собрал все Boost?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Я добавил параметр командной строки: runtime-link = shared, static Это включало отсутствующие s файлы.

Надеюсь, это поможет

1 голос
/ 09 января 2011

's' является одним из тегов ABI

Тег ABI: кодирует детали, которые влияют на совместимость библиотеки с другим скомпилированным кодом.Для каждой такой функции в тег добавляется одна буква:

    Key     Use this library when:
    s   linking statically to the C++ standard library and compiler runtime support libraries.
    g   using debug versions of the standard and runtime support libraries.
    y   using a special debug build of Python.
    d   building a debug version of your code.7
    p   using the STLPort standard library rather than the default one supplied with your compiler.
    n   using STLPort's deprecated “native iostreams” feature.8

Например, если вы создаете отладочную версию своего кода для использования с отладочными версиями статической среды выполнениябиблиотека и стандартная библиотека STLPort в режиме «родного iostreams», тег будет: -sgdpn.Если ничего из вышеперечисленного не применимо, тег ABI опускается.

...