【问题标题】:How to build a boost dependent project using regular makefiles?如何使用常规 makefile 构建依赖于 boost 的项目?
【发布时间】:2011-01-01 11:44:48
【问题描述】:
我正在开发一个 c++ 项目,我们最近需要在其中加入一小部分 boost。 boost 部分真的很小(Boost::Python),因此,使用 bjam 构建一切看起来有点矫枉过正(此外,从事该项目的每个人都对 make 感到满意,并且没有 jam 知识)。
我已经做了很多测试,但是我找不到将之前提到的库包含在我的 makefile 中并使构建成功的方法。
非常感谢您的所有帮助。 :)
【问题讨论】:
标签:
c++
boost
build-process
makefile
boost-python
【解决方案1】:
您可以使用 Boost 的 bcp utility 仅提取您需要的 Boost 子集。
这将最大限度地减少您的构建时间和大小。
不过,这并不能回答您的问题。您可能需要考虑单独构建 Boost.Python 库并将它们直接检查到您的源代码控制系统中。那么就没有人需要建造它们了。
【解决方案2】:
我遇到了同样的问题,并在 tutorial 中找到了解决方案。您 1) 需要使用 -fPIC gcc 选项将源代码编译成目标文件,以及 2) 使用 -shared gcc 选项将此对象编译成库。当然,您还必须链接到 Boost.Python 库(通常是 -lboost_python,但是对于我的 debian 系统,它是例如 -lboost_python-mt-py25,我还必须添加 -I/usr/include/pythyon25)。在我的 makefile 中,我最终在一个命令中完成了这两个步骤。另见第13 个presentation。
【解决方案3】:
如果您对 bjam 不满意,不妨考虑使用 Boost.Cmake。
或者,您至少应该能够比使用 bjam 文件更轻松地看到他们在做什么。
【解决方案4】:
从 makefile 运行 bjam,仅用于构建该部分