2017-01-13 17 views
1

我的目標是查看從命令行直接調用cmake調用g++的詳細信息。就本問題而言,我不關心make的輸出。爲什麼`cmake --verbose = 1`給出詳細的cmake輸出,但是`cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL = ON`不是?

根據official FAQthe accepted answer on a related question,我應該確保CMAKE_VERBOSE_MAKEFILE:BOOL=ON設置在我生成的CMakeCache.txt中,例如,通過命令行標記-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON。當我這樣做時,它重新查詢了一堆屬性,但沒有提供關於調用的額外信息。

但是,撥打cmake與標記--verbose=1顯示我正是我需要的。

這兩個選擇有什麼不同?是--verbose=1已棄用或以其他方式勸阻?

回答

1

不,這不是您接受的答案和您鏈接的CMake常見問題解答,否則我會感到驚訝。
準確地說,他們不會說你應該修改CMakeCache.txt不要修改該文件,這不是一個好習慣,因爲人們可以很容易犯錯
如果改爲遵循正是這兩個消息來源說,即

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . 
make 

cmake . 
make VERBOSE=1 

你會看到來自編譯和鏈接階段詳細輸出。
另外,如果你在你的CMakeLists.txt文件放入以下行應達到同樣的效果:

set(CMAKE_VERBOSE_MAKEFILE on) 

,你看不到的情況下,一個輸出可能由於先前緩存配置的事實。
我建議你如果可能的源代碼構建,以便在這種情況下,你可以通過刪除構建目錄來擺脫每個CMake生成的文件和目錄。
然後,您可以重新創建新配置,而不受先前生成的配置和構建文件的干擾。
當然,我可能是錯的,你遇到了一個錯誤,但似乎不太可能。


編輯:這是因爲在配置階段你沒有編制,即不使用一個Makefile,這是命令行選項集。在項目構建的任何階段(配置,編譯,安裝),它都不是cmake命令本身的詳細選項。當您執行cmake .時,它不會顯示額外的配置信息,但當您運行make時它應該會顯示額外的信息。
所以CMAKE_VERBOSE_MAKEFILE是錯誤的選項設置,如果你想從CMake本身得到詳細的輸出。

+0

我應該提到我嘗試將該標誌添加到命令行並將其直接放入CMakeCache.txt中。我將在未來避免修改該特定文件。 – Cliabhach

+0

讓我添加一些示例輸出到我的問題 – Cliabhach

+0

好的。對於我來說,身體並不清楚,這就是爲什麼我被標題說一件事和身體提到另一種做法所困擾的原因......; – fedepad