我在尝试设置增强子集并使用bjam正确编译,但是我没有得到我期待的结果。我正在使用boost 1.37.0在windows上工作。在Windows中构建增效子集
比方说,我想建立/安装库smart_ptr和文件系统。我故意选择了仅包含头文件的库和一个需要编译库的库。如果我用bjam(即不指定任何--with-libraryX)构建一个完整的boost安装,但是当然没有我不感兴趣的所有库,我希望它们被构建到类似于我将得到的目录结构中
我的第一种方法是在bjam中使用--with-filesystem --with-smart_ptr,但它好像不识别smart_ptr(我试过smartptr和smart-ptr没有成功)。我想这是因为它只是一个头文件库。
当我删除它,只有--with文件系统似乎所有库头文件复制到安装路径,只建库文件系统。图书馆的建设行为是我所希望的,但是我有很多库文件头文件,我不想安装在boost目录中。
我的第二种方法是使用bcp来复制相关项目。这确实起到了作用,因为我只获得了我关心的项目(及其依赖项)。但是他们没有提供任何构建被复制的库的make文件。这意味着我需要为所有不是标题的库设置项目文件并手动构建它们。
所以我的问题是,基本上,是有选择性地建设提升的方式,只复制标题对我很感兴趣,只有建立库文件的非头只有我感兴趣的库库(和提升他们依赖课程的图书馆)?
可能有很多基于手动/脚本的解决方案,但是如果我只能使用bjam运行某些内容,对我来说会更加有用,因为添加新库或升级到新的boost版本将非常简单。
编辑: 添加的第一种方法的完整的命令行:
bjam install --prefix=c:\temp\boostsmall
--build-dir=C:\temp\boostsmalltemp --layout=system
--with-filesystem variant=debug link=static threading=multi
runtime-link=static
更改使用scoped_ptr到smart_ptr
我有试图获得正则表达式安装相同的问题。不过不得不复制工具目录。 – 2009-04-21 08:54:15