2011-11-02 40 views
4

我目前正在嘗試使用CMake進行交叉編譯。然而,CMake的似乎忽略CMake忽略工具鏈文件。如何獲得調試/錯誤輸出?

cmake -DCMAKE_TOOLCHAIN_FILE=my-toolchain.cmake . 

cmake . -DCMAKE_TOOLCHAIN_FILE=my-toolchain.cmake 

規定如果我省略了CMAKE_TOOLCHAIN_FILE選項,產生完全相同的Makefile中的工具鏈。此外,如果我刻意給出錯誤的文件名或在工具鏈文件中插入語法和路徑錯誤,CMake也不會抱怨。

有沒有辦法在CMake運行期間獲得更多的錯誤/調試輸出?我能找到的唯一選擇是「--debug-output」,這對我來說不是很有幫助。

回答

10

我的錯誤。 CMake總是重新生成一個現有的構建樹。通過刪除構建目錄中的CMakeCache.txt,CMake被迫生成一個新的構建樹,並且不再忽略CMAKE_TOOLCHAIN_FILE選項。請參閱CMake FAQ

+2

如果您對工具鏈文件進行了更改,則應該始終以完全空白的構建樹開始。除非您確切知道哪些緩存條目受到工具鏈文件更改的影響,並且它們對於增量重建是「安全的」,否則應該假設最糟糕的是:更改工具鏈文件時應該重建所有內容... – DLRdave

+0

真正DIABOLICAL。我知道哪些變量是'修復'的,但是我的修復程序無法正常工作,因爲它來自緩存。我爲具有錯誤設置的文件進行了grep,並專門刪除了它。 –

+0

@ DLRdave在我的構建中做了任何更改cmakelists.txt也適用於此? – bikram990