boost裁剪和编译

来源:互联网 发布:fedora25 yum 配置源 编辑:程序博客网 时间:2024/06/06 14:51

使用boost自带的工具bcp从boos中裁剪出自已需要的子功能模块。

bjam --show-libraries 查询所有的模块

只要运行  bcp shared_ptr MyPtrFolder,bcp就会自动将shared_ptr和其依赖的文件复制到MyPtrFolder目录中。

使用方法:

1、编译bjam。这也是编译boost的必需步骤,直接运行bootstrap.bat就好了。如果之前已经编译过,可略过这步。

2、把bjam.exe拷贝到tools/bcp 目录下,使用vs的命令行运行 bjam.exe,参数随意,无非也就是toolset选择 release/debug选择等等,没有参数也能编译成功。

3、在bin.v2/tools/bcp/...  (再后面是根据你的编译选项而生成的文件夹,如msvc-9.0/release/link-static/threading-multi)  目录下可以找到 bcp.exe。这就是我们所需要的程序了。

bcp的使用是简单的,假设我们允许程序员用A、B、C、D这样四个模块,那么我们可以这样:

bcp --boost:<boost-root-directory> A B C D <output-directory>

这里A、B、C、D可以是:

Boost的头文件名。如: boost/shared_ptr.hpp

Boost的库名。如:regex

Boost的头文件标题:boost/shared_ptr 或者 shared_ptr

如果是在boost根目录下,那指定boost目录的参数也可以省去。


windows下编译

  1. 开始菜单启动Visual Studio 2015的vs2015 开发人员命令行提示,然后转到boost根文件夹,运行bootstrap.bat生成b2.exe。
  2. 运行命令:b2 stage --toolset=msvc --without-coroutine --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --without-test link=static runtime-link=static threading=multi address-model=64 debug release

添加boostest工程的包含目录和库目录

 

添加库目录


(1)可以设置为仅用于当前project:

选中当前project->Properties->Configuration Properties->C/C++->General: Additional Include Directories: 设置 E:\eCode\boost_1_56_0

选中当前project->Properties->Configuration Properties->Linker->General: Additional LibraryDirectories: 设置 E:\eCode\boost_1_56_0\bin\vc12\lib

(2)可设置为仅用于当前Solution:

选中当前project->Properties->Configuration Properties->VC++ Directories:

Include Directories: 设置 E:\eCode\boost_1_56_0

LibraryDirectories: 设置 E:\eCode\boost_1_56_0\bin\vc12\lib

(3)可设置为OS当前用户下的VC++环境(当前用户下VC++所创建的所有Solution)

在某个已打开的工程下,切换到Property Manager 选项卡,然后然后展开当前工程的properties配置,打开Microsoft.Cpp.Win32.User

选择Common Properties->VC++ Directories:

Include Directories: 设置 E:\eCode\boost_1_56_0

LibraryDirectories: 设置 E:\eCode\boost_1_56_0\bin\vc12\lib

这样设置的仅在Win32编译选项下起作用,x64编译选项需要另外配置x64的properties sheet。

(4)可设置为OS所有用户下的VC++环境

可以编辑 Microsoft.Cpp.Default.props 、Microsoft.Cpp.props 。这里就不介绍了。



Linux下编译:

./bootstrap.sh 

./bjam stage --toolset=gcc address-model=64 --with-system link=static runtime-link=static variant=debug


0 0
原创粉丝点击