我需要有条件地编译几部分代码,具体取决于系统上是否存在某些库。它们的存在是在CMake配置阶段确定的,我计划使用预处理程序定义(例如#ifdef(LIB_DEFINED)... #endif)告诉编译器结果。
我知道两种在CMake中实现的可能性:
第一种方法对我来说似乎更复杂,所以采用第二种方法而不是第二种方法有什么好处(例如避免一些可移植性问题)?
最佳答案
根据您使用的库的数量,如果遵循第二种方法,编译器的调用将变大。因此,对于那些只有2-3个可选库的小型项目,请遵循方法2,但如果它更像10,则最好遵循方法1,以便编译输出保持可读性。
关于c++ - add_definitions与configure_file,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3781222/