VC++ 2010想要链接我甚至没有指定的升级库

Phi*_*ipp 5 linker boost visual-studio-2010 visual-c++

我正在尝试用MSVC 2010而不是GCC构建我的应用程序.GCC一切正常.我的应用程序使用boost_system和boost_thread库.我在"系统"布局中使用VC2010构建了boost,这意味着库名为libboost_system.lib(而不是libboost_system_compiler_threading_version_wtf_snafu.lib)libs驻留在C:\ Boost\lib中,Makefile指定

LFLAGS        = /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:CONSOLE
LIBS          = /LIBPATH:C:/Boost/lib libboost_system.lib libboost_thread.lib Ws2_32.lib
Run Code Online (Sandbox Code Playgroud)

在调用nmake时,它会编译,但在尝试链接时会退出

LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_43.lib
Run Code Online (Sandbox Code Playgroud)

我的意思是认真的,WTF?我告诉它链接libboost_systen.lib和libboost_thread.lib它是如何尝试链接libboost_data_time的,为什么它假设我在"标记"布局中构建了lib?我怎样才能阻止MSVC变得聪明并猜测我可能想要链接的内容?

谢谢,菲利普

Joe*_*Joe 5

这是Boost库的一个功能,具有用于自动链接的兼容编译器.

(那些复杂的库名称涵盖了平台上可用的无数线程和链接选项;有充分的理由在Windows上使用该约定...)

更多信息:

http://www.boost.org/doc/libs/1_33_1/more/getting_started.html#auto-link

我找不到更新版本的页面,但我相信BOOST_ALL_NO_LIB和相关选项在1.43中仍然有效.