Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 Visual Studio 2008中链接boost的链接器问题_Visual Studio 2008_Boost_Linker - Fatal编程技术网

Visual studio 2008 Visual Studio 2008中链接boost的链接器问题

Visual studio 2008 Visual Studio 2008中链接boost的链接器问题,visual-studio-2008,boost,linker,Visual Studio 2008,Boost,Linker,我在VisualStudio2008中遇到了一个相当模糊的链接问题。链接器错误消息为:“LNK1104:无法打开文件‘boost_-thread-vc90-mt-gd-1_38.lib’”。所有路径和依赖项都已设置。 但我注意到的是,Visual Studio忽略了boost_线程-vc90-mt-gd-1_38.lib,而没有libboost_线程-vc90-mt-gd-1_38.lib(注意文件名开头的lib)。我将.lib作为libboost_thread-vc90-mt-gd-1_38.

我在VisualStudio2008中遇到了一个相当模糊的链接问题。链接器错误消息为:“LNK1104:无法打开文件‘boost_-thread-vc90-mt-gd-1_38.lib’”。所有路径和依赖项都已设置。 但我注意到的是,Visual Studio忽略了boost_线程-vc90-mt-gd-1_38.lib,而没有libboost_线程-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以文件名开头?

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

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

BOOST\u LIB\u前缀:“LIB”用于静态库,反之亦然。

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

它有这样的描述:

BOOST\u DYN\u链接:可选:当设置链接到dll而不是静态库时。


另一个告诉我们如何使用Boost.Thread动态版本的定义是
Boost\u Thread\u use\u DLL

谢谢,在项目的深处有一个使用DLL的符号集。