链接器问题链接Visual Studio 2008中的提升

时间:2010-04-01 14:15:35

标签: visual-studio-2008 boost linker

我在Visual Studio 2008中有一个相当模糊的链接问题。链接器错误消息是:“LNK1104:无法打开文件'boost_thread-vc90-mt-gd-1_38.lib'”。所有pathes和依赖项都已设置。 我注意到的是Visual Studio错过了boost_thread-vc90-mt-gd-1_38.lib而不是 libboost_thread-vc90-mt-gd-1_38.lib (请注意文件开头的lib名称)。我将.lib作为libboost_thread-vc90-mt-gd-1_38.lib添加到项目中,并在命令行中显示为libboost_thread-vc90-mt-gd-1_38.lib。

为什么Visual Studio是文件名的开头?

1 个答案:

答案 0 :(得分:1)

在Boost中有一个命名库的规则:

1)boost_thread-vc90-mt-gd-1_38.lib用于动态链接版本 2)用于静态链接版本的libboost_thread-vc90-mt-gd-1_38.lib

BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".

您可以在项目中定义预处理器定义,以便使用动态链接版本的boost库BOOST_DYN_LINK=1

有这样的描述:

BOOST_DYN_LINK: Optional: when set link to dll rather than static library.

另一个使用Boost.Thread动态版本的定义是BOOST_THREAD_USE_DLL

相关问题