我在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