我在Cmake中使用configure_file
命令进行功能可用性检查,如on this page所述。这页建议使用的命令是这样的:让编译器找到Cmake创建的文件
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})'。 – 2014-09-25 03:40:45