Boost 在Windows环境下的配置过程
程序员文章站
2022-05-31 22:12:35
...
Boost 在Windows环境下的配置过程
首先列举所使用的环境如下:
- WIN7 x64
- VS13 pro
- Boost 1.56.0
- Python 2.7&3.7
前提条件要安装好VS和Python,如果Python没能成功安装则编译过程中Python相关库无法生成
详细的配置步骤如下:
- 首先从官网上下载相应版本,网速较慢则可考虑使用网上的镜像下载
- 下载完成后进行解压
- 接下来打开VS Tools文件夹。
其中编译64位则选择打开“VS2013 x64 本机工具命令提示”,32位选择“VS2013 x86 本机工具命令提示”* - 打开后进入解压后的boost 目录。
- 执行bootstrap.bat 脚本,进行编译引擎的准备
- 之后执行下面的命令来进行编译:
bjam stage --toolset=msvc-12.0 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="E:\boost\x64" link=shared runtime-link=shared threading=multi debug release
- 其中msvc指定的是VS的版本,VS13对应为12.0,VS15 对应为14.0,可以打开VS版本确认一下;
- model则指定位数为32或64;
- 之后的without选项表示不对该部分进行编译;
- –stagedir代表编译生成库的存放地址;
- link代表该库的运行模式,即生成动态库亦或者静态库,而runtime-link则表明是动态/静态链接c++运行时库,相关关系如下图。在这里我们使用的动态库,因此全部指定为动态链接。
- 为提高编译速度,指定为多线程编译,threading = multi
- 最后选择生成debug和release两个版本。
生成结束后要注意将其添加进环境变量中,其中包括python安装路径,boost源代码及编译好的动态库,完成之后即可在VS中进行调用,调用方法中要对项目属性进行一定的调整,包含以下两项:
在C++常规选项中“附加包含目录”中加入:$(BOOST_ROOT);$(PYTHON_ROOT)\include;
在链接器常规选项中“附加库目录”中加入:$(PYTHON_ROOT)/libs;$(BOOST_ROOT)/$(Platform)/lib;
PS:
过程中遇到了如下错误(差不多是这么说的):
C1803: Fatal error:can not open “pyconfig.h”: No such file or dictionary;
但其实是可以链接打开该文件的,因此一开始主要以为是配置过程出现问题,甚至根据网上的教程认为Boost库源码出错,最后滔哥找到问题所在:
VS内目录有问题!
开始配置时,将一部分路径放置在VC++目录下,但最后发现只有转移到C/C++下才可以成功运行。关于二者的区别,直接贴出《VC++ Directories》中的原版解释:
VC++ Directories: Include Directories
- this value is inherited from the INCLUDE Windows environment variable which is defined outside of Visual Studio
- environment variables can be: global to the computer or have user level scope
- The INCLUDE and LIB environment variables are created when the Microsoft Windows SDK is installed with Visual Studio.
C/C++: Additional Include Directories
- is a project level setting you will have to define this value for every project in your solution
- this value can be persisted to source control
上一篇: 【MySQL】Linux中MySQL忘记 root 密码
下一篇: 【MySQL】允许用户远程连接