c++ - 如果存在 boost 则有条件编译

标签 c++ macos boost conditional-compilation

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

boost 是否有任何可以定义的全局宏(例如 __BOOST__)可供我检查?

编辑:现在我很清楚我必须在 makefile 级别上实现这一目标。我正在开发 OSX lion。使用 gnu make

最佳答案

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

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

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

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

关于c++ - 如果存在 boost 则有条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18804030/

相关文章:

c++ - GLFW 操纵杆输入问题

objective-c - Xcode单一窗口,显示来自xib文件的自定义 View

jquery - e.owlCarousel 不是 linux 主机上 yarn encore 生产后的功能

linux - 字体不工作 - Vim Statusline

c++ - 如何使用 Solaris Studio 12.4 编译器构建 Boost V1.57

c++ - 为什么在 "release "模式下生成的可执行文件给出了错误的结果?

c++ - 打印抽象对象c++

c++ - 算术运算符(+)运算符是否会检查返回类型和传递参数?

c++ - boost::lexical_cast 编译时出现警告

c++ - 按顺序查找boost::multi_index,按顺序获取下一个元素