VS2017编译安装boost_1_72_0请看最后
VS2013编译、安装Boost1.55
1. sourceforge上下载Boost1.55
2. 解压到E:/boost_1_55_0
3. 程序 -- 所有程序 -- Visual Studio 2013 -- Visual Studio Tools -- VS2013 开发人员命令提示
4. 修改文件 has_member_function_callable_with.hpp
将 219 行的:
template<class U>
static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
<U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
修改为:
#ifdef BOOST_MSVC
template<class U>
static decltype( boost::move_detail::declval<Fun>().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
, boost_intrusive_has_member_function_callable_with::yes_type())
Test(Fun*);
#else
template<class U>
static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
<U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
#endif
5. cd 到 E:/boost_1_55_0
6. E:\boost_1_55_0> bootstrap.bat
7. 如果需要编译python组件,需要先安装python的环境 (只是听闻)
8. 编译或者安装 (加参数 address-model=64 指示编译64位版本)
如果只想要编译出来的库文件,执行:(我机器半小时内就完成了)
E:\boost_1_55_0> bjam.exe stage --toolset=msvc-12.0 --without-python --stagedir=".\bin\vc12_x86" link=static runtime-link=static threading=multi debug release
如果想安装(库文件+include), 执行:(我机器花了1-2个小时,但还是建议用安装的方式,而不是上面的编译的方式)
E:\boost_1_55_0>bjam.exe install --toolset=msvc-12.0 --without-python --prefix=".\bin\vc12_x86" link=static runtime-link=static threading=multi debug release
上述命令编译出的是mtd、mt的库,只要将runtime-link=static改成runtime-link=shared就可以编译出mdd、md的库。
测试:
1. 新建测试工程,拷贝E:\boost_1_55_0\libs\asio\example\cpp03\nonblocking下的third_party_lib.cpp文件,加入工程
找不到设置命令行参数的地方,所以main中的if语句去掉了,atoi(argv[1])也直接改成12345
2. 修改工程属性:
C/C++ -- 常规 -- 附加包含目录 增加 E:/boost_1_55_0/bin/vc12_x86/include/boost-1_55/
链接器 -- 常规 -- 附加库目录 增加 E:/boost_1_55_0/bin/vc12_x86/lib
3. 编译,正常
4. debug启动,失败:找不到一系列系统的PDB文件
调试 -- 选项和设置 -- 常规 -- 勾选启用源服务器支持 -- 确定, 调试 -- 选项和设置 -- 符号 -- 勾选Microsoft符号服务器 -- 确定
可以启动了
5. release下貌似可以直接启动
参考博客:
vs2013编译boost1.55.0 32/64位:http://www.cnblogs.com/run220/p/3551134.html
vs2012运行c语言出现:无法查找或打开 PDB 文件:http://blog.sina.com.cn/s/blog_81d2b15701016pd3.html
更新
VS2017编译boost_1_72_0
代码不用改动,只需要打开cmd,依次执行下面各行命令即可,其中%boost_codes%是boost代码的目录
cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build"
vcvars64.bat
cd %boost_codes%
bootstrap.bat
b2.exe install --toolset=msvc-14.1 architecture=x86 address-model=64 --without-python --prefix=".\bin\x64" link=static runtime-link=shared runtime-link=static threading=multi debug release
cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build"
vcvars32.bat
cd %boost_codes%
bootstrap.bat
b2.exe install --toolset=msvc-14.1 architecture=x86 address-model=32 --without-python --prefix=".\bin\x86" link=static runtime-link=shared runtime-link=static threading=multi debug release
b2.exe是bjam.exe的新版本