尝试在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库? 或者它不属于上述......!
我希望有人能指出我正确的方向。
也许有帮助,我正在尝试从https://github.com/thegrandpoobah/voronoi
编译voronoi.cpp我下载了Boost 1.56并使用以下方法编译了库二进制文件:
bootstrap
.\b2
如入门文件中所述。
答案 0 :(得分:0)
您正在链接静态库(因此lib名称中的's')。可能是因为您在Visual Studio下的“代码生成”中的“多线程”或“多线程调试”设置下生成项目。
使用
构建boost时,默认情况下不会构建这些库 b2
你需要改为运行
b2 build-type=complete
还生成boost libs的静态版本。
在文件boostcpp.jam
中,构建选项(对于Windows目标)定义为:
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 ] ;
<link>
选项代表构建的lib本身,而<runtime-link>
代表它们实际构建的lib类型。
因此,对于minimal-properties
,您不会生成<runtime-link>static
,这就是您在名称后缀中使用s
所寻找的内容。