如果存在增强,则有条件地编译

时间:2013-09-14 16:44:06

标签: c++ macos boost conditional-compilation

我想有条件地编译一些使用boost的c ++代码,并且如果不存在boost,它就不会尝试编译与boost相关的代码。

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

编辑:现在我很清楚我必须在makefile级别实现这一点。我正在研究OSX Lion。使用gnu make

1 个答案:

答案 0 :(得分:2)

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

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

如果存在您需要的库文件,您可能还需要Makefile中的几个ifdef类型的选项。

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