如何使用常规 makefile 构建依赖于 boost 的项目?

发布于 2024-08-16 23:57:50 字数 217 浏览 7 评论 0原文

我正在开发一个c++项目,最近我们需要在其中包含一小部分boost。 boost 部分确实很小(Boost::Python),因此,使用 bjam 构建所有内容看起来有点大材小用(此外,参与该项目的每个人都对 make 感到满意,并且对 jam 不了解)。

我已经做了一些测试,但是我找不到一种方法将前面提到的库包含在我的 makefile 中并使构建成功。

非常感谢您的所有帮助。 :)

I'm working on a c++ project, and we recently needed to include a small part of boost in it. The boost part is really minimal (Boost::Python), thus, using bjam to build everything looks like an overkill (besides, everyone working on the project feels comfortable with make, and has no knowloedge of jam).

I made quite some tests already, but I cant find a way to include the formerly mentioned library in my makefile and make the build succesful.

All your help is deeply apreciated. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(4

任谁 2024-08-23 23:57:50

您可以使用 Boost 的 bcp 实用程序 仅提取您需要的 Boost 的子集。
这将最大限度地减少您的构建时间和构建时间。尺寸。

但这并不能回答你的问题。您可能需要考虑单独构建 Boost.Python 库并将它们直接签入源代码控制系统。那么就没有人需要建造它们了。

You can use Boost's bcp utility to extract only the subset of Boost you need.
That will minimize your build time & size.

That doesn't answer your question, though. You may want to consider building the Boost.Python libraries separately and checking them directly into your source control system. Then nobody would need to build them.

无戏配角 2024-08-23 23:57:50

我遇到了同样的问题,并在此 教程 中找到了解决方案。您 1) 需要使用 -fPIC gcc 选项将源代码编译为目标文件,2) 使用 -shared gcc 选项将此对象编译为库。当然,您还必须链接到 Boost.Python 库(通常是 -lboost_python,但是对于我的 debian 系统,它是例如 -lboost_python-mt-py25,我有还要添加 -I/usr/include/pythyon25)。在我的 makefile 中,我最终在一个命令中完成了这两个步骤。另请参见第 17 页。此演示文稿中的 13 部分。

I had the same problem and found a solution in this tutorial. You 1) need to compile the source into an object file with the -fPIC gcc option, and 2) compile this object into a library with the -shared gcc option. Of course you have also to link against the Boost.Python library (generally -lboost_python, however for my debian system it is for example -lboost_python-mt-py25, I have also to add -I/usr/include/pythyon25). In my makefile I end up doing those two steps in one command. See also p. 13 of this presentation.

最美不过初阳 2024-08-23 23:57:50

如果您对 bjam 感到不舒服,您可能需要考虑使用 Boost.Cmake.
或者,您至少应该能够更轻松地看到他们使用 bjam 文件正在做什么。

If you're uncomfortable with bjam, you might want to consider using Boost.Cmake.
Alternatively you should at least be able to see more easily what they are doing then with the bjam files.

绮烟 2024-08-23 23:57:50

从 makefile 运行 bjam,只是为了构建该部分

Run bjam from the makefile, just for building that part

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