问题描述,网上下载了一个样例,在VS2012中进行了编译,编译过程中发现链接无法成功。
于是,右键该工程,选择“属性”——>“链接器”——>“常规”——>“显示进度”;选择了“显示所有进度消息”。
发现,在消息中显示了如下消息:
1> 未使用的库:
1> E:\Boost\lib\libboost_iostreams-vc110-mt-1_64.lib
我很疑惑,后来,该库明明存在,为什么无法链接。
后来,突然想起来,该库是我默认编译的,我的机器是64位,但是,编译boost时,是默认编译的;而下载的程序,必须要求是64位。
因此,得出原因:1)下载的程序要求是64位;但boost库是32位;2)因此,版本不兼容,最终出现问题。
解决方法:对boost进行64位编译。
编译方法:
1)vs2013 x64兼容工具命令行
2)bootstrap.bat生成x64版的bjam.exe b2.exe
3)b2.exe --build-type=complete --stagedir="E:\Boost" address-model=64
注意,一定要加上address-model=64 ;否则,无法编译成64位的。
执行成功后,链接最新的库,该问题解决。