需求
中望这边给的包依赖boost,还是指定1.65.1版本的,但是最新的ubuntu确实安装的1.74,这就很尴尬,直接创建软连接的话还是会报错。那就只能自己编译一下指定版本。
boost下载地址
解压文件
tar -xvzf boost_1_65_1.tar.gz
bjam
boost库自带一套编译工具bjam,bjam本身也是跨平台的,也需要自行编译出来。解压我们下载的boost_1_65_1.zip文件,在目录下有bootstrap.sh和bootstrap.bat两个脚本文件,它们分别用来编译unix和windows下的bjam。
编译bjam
./bootstrap.sh
编译及安装boost
./b2 install --prefix="../boost1.65.1" --build-dir="build" --with-filesystem
解释: 这里试安装boost,安装目录为上级目录的boost1.65.1,编译目录为build,只编译安装filesyste这个组件
b2参数说明
项 | 参数 | 说明 |
---|---|---|
stage | 生成链接库(动态库或静态库)到statedir中。(不含头文件) | |
- | --stagedir= | 在stage生成模式下的输出目录,支持相对路径。 |
install | 生成链接库(动态库或静态库)到prefix/lib中,并将头文件放到prefix/include中 | |
- | --prefix= | 在install生成模式下的输出目录。 |
- | --build-type= | 构建指定的预定义库。 |
complete | 构建所有可能的变体。 | |
- | --build-dir= | 设置编译过程中间产物的存放路径。 |
- | --show-libraries | 显示需要构建和安装步骤的boost库列表,然后退出。 |
- | --layout= | 确定是否选择库名和头位置,以便在同一系统上可以使用多版本的boost或多个编译器。 |
versioned | boost二进制文件的名称包括boost版本号、编译器的名称和版本以及编码的构建属性。 | |
- | --help | 帮助文档 |
- | --with- | 编译哪些库,例如--with-wave --with-test,表示只编译wave和test库。 |
- | --without- | 排除哪些库,例如--without-wave --without-test,表示除了wave库和test库其它都编译。 |
- | toolset=msvc-14.0/msvc-14.1/msvc-14.2/gcc | 指定编译器。b2.exe会自行检索当前系统下的编译器,如果该参数为缺省值,那么b2.exe将使用boost源码根目录下的project-config.jam文件中的第一个编译器。 |
variant=debug/release | 设置生成的库是调试版本还是发布版本。默认值为release debug即两者都编译。 | |
link=static/shared | 设置生成的库是动态库还是静态库。默认值为satic。 | |
threading=single/multi | 设置是否支持多线程(线程安全)。默认值为multi(多线程)。 | |
runtime-link=static/shared | 设置运行时库的链接方式。默认shared(动态链接)。 | |
address-model=32/64 | 设置生成的库地址模式,是32位还是64位。默认两者都编译。 | |
--project-config=project-config.jam | 加载指定项目配置文件。默认值为project-config.jam。 |