C++ LNK1104:无法打开文件';libboost_程序选项-vc100-mt-sgd-1_56.lib';

C++ LNK1104:无法打开文件';libboost_程序选项-vc100-mt-sgd-1_56.lib';,c++,boost,C++,Boost,尝试在VS2010中编译时出现以下错误: LNK1104:无法打开文件'libboost_program_options-vc100-mt-sgd-1_56.lib' 我已经阅读了许多关于stackoverflow的类似问题,但仍然无法解决 文件“libboost_program_options-vc100-mt-gd-1_56.lib”存在,但“libboost_program_options-vc100-mt-sgd-1_56.lib”(注意sgd和gd中的s)不在我的lib文件夹中 我可能

尝试在VS2010中编译时出现以下错误:

LNK1104:无法打开文件'libboost_program_options-vc100-mt-sgd-1_56.lib'

我已经阅读了许多关于stackoverflow的类似问题,但仍然无法解决

文件“libboost_program_options-vc100-mt-gd-1_56.lib”存在,但“libboost_program_options-vc100-mt-sgd-1_56.lib”(注意sgd和gd中的s)不在我的lib文件夹中

我可能需要更改项目设置中的某些内容来摆脱s!? 或者我需要以不同的方式编译boost库? 或者它不是上述的任何一项

我希望有人能给我指出正确的方向

也许会有帮助,我正在尝试从

我下载了Boost 1.56并使用以下二进制代码编译了库:

bootstrap
.\b2
如入门文件中所述。

简而言之 您正在针对静态库进行链接(因此库名称中有“s”)。可能是因为您正在Visual Studio的“代码生成”中的“多线程”或“多线程调试”设置下生成项目

使用构建boost时,默认情况下不会构建这些库

b2

你需要跑步

b2构建类型=完成

还可以生成boost libs的静态版本

详细地 在文件
boostcpp.jam
中,生成选项(针对Windows目标)定义为:

self.minimal-properties-win=[property-set.create-debug
释放多个静态共享
32 64 ] ;
self.complete-properties=[property-set.create
调试版本
多种
共享静态
共享静态];
self.complete-properties-win=[property-set.create
调试版本
多种
共享静态
共享静态
32 64 ] ;
选项代表构建的lib本身,而
代表实际构建的lib的类型


因此,使用
最小属性
,您不会生成
静态
,这是您在名称后缀中使用
s
寻找的。

如何从VS链接boost库?这并不意味着静态库。所以问题是静态库还是动态库。您在链接器路径中设置了boost库位置的路径了吗?@Piotr S.和Mgetz:我将编译器包含路径和指向stage/lib文件夹的链接添加到链接器包含路径。要查看项目的所有我的设置,请参阅:
self.minimal-properties-win = [ property-set.create <variant>debug
        <variant>release <threading>multi <link>static <runtime-link>shared
        <address-model>32 <address-model>64 ] ;

self.complete-properties = [ property-set.create
    <variant>debug <variant>release
    <threading>multi
    <link>shared <link>static
    <runtime-link>shared <runtime-link>static ] ;

self.complete-properties-win = [ property-set.create
    <variant>debug <variant>release
    <threading>multi
    <link>shared <link>static
    <runtime-link>shared <runtime-link>static
    <address-model>32 <address-model>64 ] ;