我正在使用 boost 1.46 中的最新版本的 boost-build。鉴于main.cpp
这取决于a.h
and b.h
,使用 boost-build 的自动检测依赖关系的能力,我的 jam 文件很简单
exe my_prog : main.cpp ;
但是,如果有一个实现文件,则不会生成或链接b.cpp
该对象b.o
。我希望我的构建脚本最小化,并且每次添加新文件时都不需要调整。那么,我怎样才能自动做到这一点?
编辑以反映真实意图与我所要求的。
我正在使用 boost 1.46 中的最新版本的 boost-build。鉴于main.cpp
这取决于a.h
and b.h
,使用 boost-build 的自动检测依赖关系的能力,我的 jam 文件很简单
exe my_prog : main.cpp ;
但是,如果有一个实现文件,则不会生成或链接b.cpp
该对象b.o
。我希望我的构建脚本最小化,并且每次添加新文件时都不需要调整。那么,我怎样才能自动做到这一点?
编辑以反映真实意图与我所要求的。
有什么理由这行不通吗?
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 ;