【发布时间】:2014-09-25 02:45:15
【问题描述】:
我在 Cmake 中使用configure_file 命令进行功能可用性检查,如on this page 所述。该页面建议使用如下命令:
configure_file(config.h.in config.h)
这会将${CMAKE_CURRENT_SOURCE_DIR}/config.h.in 转换为${CMAKE_CURRENT_BINARY_DIR}/config.h。但是当我编译我的程序时,编译器只在${CMAKE_CURRENT_SOURCE_DIR} 中查找标题(例如config.h),而不是${CMAKE_CURRENT_BINARY_DIR}。所以很自然,编译器找不到config.h生成它的位置,构建失败。
解决此问题的标准方法是什么?我是否应该更改CMakeLists.txt 以便在源目录中创建config.h?还是应该更改它以将构建目录添加到包含路径? (真的,为什么我必须手动处理这个问题?[半反问])
This question 关注类似的问题,但建议将这两个选项作为可能的解决方案;我想知道是否有标准做法,或者这是否表明我遗漏了有关如何使用 Cmake 的内容。
【问题讨论】:
-
对于源外构建,添加
include_directories(${CMAKE_CURRENT_BINARY_DIR})。
标签: c path cmake out-of-source