我想有条件地编译一些使用 boost 的 c++ 代码,并使其在不存在 boost 时不会尝试编译依赖于 boost 的代码。
boost 是否有任何可以定义的全局宏,比如__BOOST__
我可以检查的?
编辑:现在我很清楚我必须在生成文件级别上实现这一点。我正在研究 OSX 狮子。使用 gnu make
我想有条件地编译一些使用 boost 的 c++ 代码,并使其在不存在 boost 时不会尝试编译依赖于 boost 的代码。
boost 是否有任何可以定义的全局宏,比如__BOOST__
我可以检查的?
编辑:现在我很清楚我必须在生成文件级别上实现这一点。我正在研究 OSX 狮子。使用 gnu make
完成此操作的典型方法是使用“配置脚本”或类似方法,检测是否存在必需/可选组件,然后有选择地为构建系统设置一些 -D 选项。
显然,如果它只是您自己的项目或小型发行版,您可以手动执行相同的操作。
ifdef
如果您需要库文件,您可能还需要在 Makefile 中进行几种类型的选择。
确定是否安装了您需要的部分 boost 的更简单方法之一是尝试编译它。如果有错误,可能的原因是 boost 的那部分不存在(如果缺少更重要的部分,这显然不起作用 - 例如,没有安装编译器或标准库也会导致编译为失败。这就是为什么几乎所有配置类型工具“从最基本的功能开始,然后沿着依赖关系树向上工作”)。