使用 Boost.build 自动包含目标文件
我正在使用 boost 1.46 中的最新版本 boost-build。鉴于 main.cpp
依赖于 ah
和 bh
,使用 boost-build 的自动检测依赖关系的能力,我的 jam 文件很简单
exe my_prog : main.cpp ;
但是,如果有实现文件 b.cpp
,则不会生成或链接对象 bo
。我希望我的构建脚本尽可能少,并且不需要调整每次我添加一个新文件。那么,我怎样才能自动执行此操作呢?
编辑以反映真实意图与我的要求。
I'm using the latest version of boost-build found in boost 1.46. Given main.cpp
which depends on a.h
and b.h
, using the boost-build's ability to auto-detect dependencies my jam file is simply
exe my_prog : main.cpp ;
But, if there is an implementation file, b.cpp
, the object b.o
is not produced nor linked in. I'd like my build scripts to be minimal, and not require tweaking everytime I add a new file. So, how can I do this automatically?
Edited to reflect true intent vs. what I was asking for.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有什么理由这行不通吗?
按照你想要的方式去做听起来既痛苦又不愉快,尤其是对于刚开始构建的人来说。另外,有时您可能只需要标头,而不需要 cpp。
如果您的代码组织得无可挑剔,并且您只需要当前目录中的文件,那么您可以轻松获取所有 cpp 文件:
(glob 还有其他参数可以让您过滤掉编辑器可能创建的备份/恢复文件还有其他版本的 glob 会进入子目录。)
如果您有多个最终可执行文件所需的多个 cpp 文件,那么最好使用
lib
规则创建一个库并将其用作您的可执行文件的来源之一。Is there any reason this won't work?
Doing it the way you want sounds painful and unpleasant, especially for someone new to boost-build. Plus there may be times when you only need the header, and not the cpp.
If your code is impeccably organized, and you only need the files in the current directory, you can get all the cpp files easily enough:
(There are other arguments to glob that will allow you to filter out backup/recovery files your editor may create. And there are other versions of glob that descend into child directories.)
If you have multiple cpp files needed by multiple final executables, you will be better off making a library with the
lib
rule and using that as one of the sources for your executable.