2011-01-09 2 views
0

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

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

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

$(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?

ответ

1

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

ABI tag: encodes details that affect the library's interoperability with other compiled code. For each such feature, a single letter is added to the tag:

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 
+0

Следуя указателю, я переустановил Boost с помощью BoostPro Installer. Я решил установить как static \ debug \ multithreaded, так и static \ multithreaded. В конце концов, я не пропустил библиотеку. – Jonathan

+0

@Jonathan: если вы создадите библиотеки boost с -build-type = complete, то он построит все поддерживаемые варианты. См. Раздел «5.3.4 Вызов bjam» в http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html#invoke-bjam – yasouser

1

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

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

Смежные вопросы