【发布时间】:2010-09-23 18:01:20
【问题描述】:
我需要有条件地编译几部分代码,这取决于系统上是否存在一些库。它们的存在是在 CMake 配置阶段确定的,我计划使用预处理器定义(如 #ifdef(LIB_DEFINED) ... #endif)告诉编译器结果。
我知道如何在 CMake 中实现这一目标的两种可能性:
- 使用这些预处理器定义创建一个模板文件,在 CMakeLists 中将其传递给 configure_file(),最后在每个源文件中#include 生成的配置文件
- 在 CMakeLists 中直接使用 add_definitions(-DLIB_DEFINED)。
第一种方法对我来说似乎更复杂,那么采用它而不是第二种方法有什么好处(例如,避免一些可移植性问题)?
【问题讨论】: