Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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
C++ Boost lib链接器错误Visual C++;_C++_Visual Studio 2005_Boost_Linker Errors - Fatal编程技术网

C++ Boost lib链接器错误Visual C++;

C++ Boost lib链接器错误Visual C++;,c++,visual-studio-2005,boost,linker-errors,C++,Visual Studio 2005,Boost,Linker Errors,我下载了的源代码,并试图在VisualStudio2005中构建它。Launchy项目是使用VC7构建的,所以我必须将项目文件更新到VC8,而且这个过程似乎进行得很顺利。然而,Launchy也使用1.33.1 libs,我构建的是Boost1.41.0 libs(Boost1.41.0 libs的道具,使最近的libs更容易构建),因此我还更新了项目,以指向我新的Boostlibs安装。现在我得到以下链接器错误: fatal error LNK1104: cannot open file 'li

我下载了的源代码,并试图在VisualStudio2005中构建它。Launchy项目是使用VC7构建的,所以我必须将项目文件更新到VC8,而且这个过程似乎进行得很顺利。然而,Launchy也使用1.33.1 libs,我构建的是Boost1.41.0 libs(Boost1.41.0 libs的道具,使最近的libs更容易构建),因此我还更新了项目,以指向我新的Boostlibs安装。现在我得到以下链接器错误:

fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_41.lib'
我查看了Boost lib目录,找到的最接近的匹配项是

libboost_regex-vc80-mt-gd-1_41.lib
请注意缺少的“s”。我不明白libs的区别是什么,visualstudio是在寻找错误的东西,还是我的Boost构建过程未能构建正确的libs。谁能给我指出正确的方向吗

作为一个实验,我复制了一个我拥有的regex库,并将其重命名为链接器正在寻找的内容。这给了我一长串链接器错误,这些错误与msvctd.lib中已定义的符号有关,例如:

error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
我将尝试构建Boost1.33.1libs,并将我的Launchy项目文件指向它。但我仍然想知道我的boost1.41.0 libs有什么问题

编辑:我找到了对“s”lib的引用:

在静态连接C++标准库和编译器运行时支持库时使用此库。

因此,看来“s”LIB是正确的。现在我只需要弄清楚如何构建它们

解决方案:我能够使用以下命令行构建缺少的boost libs

bjam --build-type=complete msvc stage
我在boost所在的目录中运行boostrap.bat之后运行了它。

不同之处在于—“mt sgd”表示“调试,静态链接的运行库,多线程,带调试符号”。“mt gd”是相同的,但使用动态链接的运行库(即msvctd.lib而不是libcmtd.lib)


要么将项目设置更改为使用动态CRT链接(即/MDd而不是/MTd),要么使用静态链接构建Boost-混合这些链接将无法正常工作。

您使用了什么命令构建Boost?尝试指定生成类型=完成。通常它也应该构建s库。

我会尝试一下,谢谢。我想我没有指定构建类型就构建了它。它对我不起作用。s库不是构建的。boost 1.54此选项为我生成了s库:runtime link=static如果您不想在构建它们时遇到麻烦,可以在此处获取它们: