對一般問題,有許多的方法可以從CMake的獲得更詳細的輸出 - 我只是學到了第三個用於粗糙的錯誤:
- 調試CMake的食譜,我喜歡用郵件命令你甚至可以迭代目錄和發送消息*
- eg
message(STATUS "SQLITE3_LIB: ${SQLITE3_LIB} SQLITE3_PATH: ${SQLITE3_PATH}") # prints SQLITE3_LIB and SQLITE3_PATH variables
- 進行詳細的建立解決您的構建本身
- 運行
make VERBOSE=1
(用make,ninja -v
與忍者等。),以幫助您解決過程中,如cmake -DYOUR_OPTION="insert values" ~/path/to/files/ && make VERBOSE=1
- 如果你發現一個不可思議的錯誤,我剛剛得知,我們可以運行在失敗的命令strace的 - 這可能是一個有點勢不可擋,但可以幫助你的時候已經用盡了#1和#2
- 我只是用
strace /usr/bin/cmake -E copy_directory $MY_SOURCE_PATH $MY_DEST_PATH
,試圖理解爲什麼一個副本失敗
*我已經使用DLRdave's answer到一個不同的問題,打印出日e INCLUDE_DIRS:
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
這樣做很有意義。要麼我看起來不夠努力,要麼文檔在描述這些細節方面做得不好。 – Samaursa 2013-03-24 01:07:54
[本教程](http://www.cmake.org/cmake/help/cmake_tutorial.html#s3)可能有所幫助? – Fraser 2013-03-24 02:19:18
它的確如此!謝謝! – Samaursa 2013-03-24 15:51:11