1

我正在使用 boost 1.46 中的最新版本的 boost-build。鉴于main.cpp这取决于a.hand b.h,使用 boost-build 的自动检测依赖关系的能力,我的 jam 文件很简单

exe my_prog : main.cpp ;

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

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

4

1 回答 1

1

有什么理由这行不通吗?

exe my_prog : main.cpp b.cpp ;

以你想要的方式做这件事听起来很痛苦和不愉快,尤其是对于新手来说。另外,有时您可能只需要标头,而不需要 cpp。

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

exe my_prog : [ glob *.cpp ] ;

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

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

lib blib : b.cpp ;
exe my_prog : main.cpp blib ;
于 2011-02-25T17:06:28.070 回答