使用Boost.build自动包含目标文件

时间:2011-02-25 04:16:40

标签: c++ bjam boost-build

我正在使用boost 1.46中的最新版boost-build。鉴于main.cpp取决于a.hb.h,使用boost-build能够自动检测依赖关系我的jam文件只是

exe my_prog : main.cpp ;

但是,如果有一个实现文件b.cpp,则不会生成或链接对象b.o。我希望我的构建脚本最小化,并且每次添加时都不需要调整一个新文件。那么,我该如何自动完成?

编辑以反映真实意图与我要求的内容。

1 个答案:

答案 0 :(得分:1)

有什么理由不行吗?

exe my_prog : main.cpp b.cpp ;

按照您想要的方式进行操作听起来既痛苦又令人不愉快,特别是对于那些刚刚进行强化建设的人来说。另外,有时您可能只需要标题,而不是cpp。

如果您的代码组织得无可挑剔,并且您只需要当前目录中的文件,则可以轻松获取所有cpp文件:

exe my_prog : [ glob *.cpp ] ;

(还有其他一些参数可以让你过滤掉编辑器可能创建的备份/恢复文件。还有其他版本的glob可以下载到子目录中。)

如果多个最终可执行文件需要多个cpp文件,最好使用lib规则创建一个库,并将其作为可执行文件的源之一。

lib blib : b.cpp ;
exe my_prog : main.cpp blib ;