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

发布于 2024-10-19 07:01:34 字数 336 浏览 6 评论 0原文

我正在使用 boost 1.46 中的最新版本 boost-build。鉴于 main.cpp 依赖于 ahbh,使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

罗罗贝儿 2024-10-26 07:01:34

有什么理由这行不通吗?

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 ;

Is there any reason this won't work?

exe my_prog : main.cpp b.cpp ;

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:

exe my_prog : [ glob *.cpp ] ;

(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.

lib blib : b.cpp ;
exe my_prog : main.cpp blib ;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文