2

我想有条件地编译一些使用 boost 的 c++ 代码,并使其在不存在 boost 时不会尝试编译依赖于 boost 的代码。

boost 是否有任何可以定义的全局宏,比如__BOOST__我可以检查的?

编辑:现在我很清楚我必须在生成文件级别上实现这一点。我正在研究 OSX 狮子。使用 gnu make

4

1 回答 1

2

完成此操作的典型方法是使用“配置脚本”或类似方法,检测是否存在必需/可选组件,然后有选择地为构建系统设置一些 -D 选项。

显然,如果它只是您自己的项目或小型发行版,您可以手动执行相同的操作。

ifdef如果您需要库文件,您可能还需要在 Makefile 中进行几种类型的选择。

确定是否安装了您需要的部分 boost 的更简单方法之一是尝试编译它。如果有错误,可能的原因是 boost 的那部分不存在(如果缺少更重要的部分,这显然不起作用 - 例如,没有安装编译器或标准库也会导致编译为失败。这就是为什么几乎所有配置类型工具“从最基本的功能开始,然后沿着依赖关系树向上工作”)。

于 2013-09-14T17:03:46.800 回答