gpt4 book ai didi

c++ - add_definitions 与 configure_file

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:00:00 26 4
gpt4 key购买 nike

我需要有条件地编译几部分代码,具体取决于系统上是否存在某些库。它们的存在是在 CMake 配置阶段确定的,我计划使用预处理器定义(如 #ifdef(LIB_DEFINED) ... #endif)告诉编译器结果。

我知道如何在 CMake 中实现它的两种可能性:

  1. 使用这些预处理器定义创建一个模板文件,将其在 CMakeLists 中传递给 configure_file(),最后在每个源文件中 #include 生成的配置文件
  2. 直接在 CMakeLists 中使用 add_definitions(-DLIB_DEFINED)。

第一种方法对我来说似乎更复杂,那么采用它而不是第二种方法是否有任何优势(例如避免一些可移植性问题)?

最佳答案

方法 1 通常更可取,因为您还可以将该文件安装为已配置的 header ,从而允许其他使用/链接到您的代码的项目使用相同的设置。也可以检查文件并查看项目是如何配置的。这两种方法都可以,偶尔 add_definitions 是更好的方法(一个或几个定义,在初始编译后保留这些定义没有优势)。

关于c++ - add_definitions 与 configure_file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com