Saya menggunakan CMake dengan GNU Make dan ingin melihat semua perintah dengan tepat (misalnya bagaimana kompiler dijalankan, semua flag, dll.).
GNU make telah --debug
, tetapi tampaknya tidak terlalu membantu apakah ada opsi lain? Apakah CMake menyediakan flag tambahan dalam Makefile yang dihasilkan untuk tujuan debugging?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Jawaban:
Ketika Anda menjalankan make, tambahkan
VERBOSE=1
untuk melihat output perintah penuh. Sebagai contoh:Atau Anda dapat menambahkan
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
perintah cmake untuk output perintah verbose permanen dari Makefiles yang dihasilkan.Untuk mengurangi beberapa output yang mungkin kurang menarik, Anda mungkin ingin menggunakan opsi berikut. Opsi
CMAKE_RULE_MESSAGES=OFF
menghapus garis seperti [33%] objek Bangunan C ... , sementara--no-print-directory
memberitahu make untuk tidak mencetak direktori saat ini menyaring garis sepertimake[1]: Entering directory
danmake[1]: Leaving directory
.sumber
cmake -GNinja . ; ninja -v
menunjukkan output verbose yang sangat bagus dengan bulu minimal.cmake --build . -- VERBOSE=1
Lebih mudah mengatur opsi dalam
CMakeLists.txt
file sebagai:sumber
CMAKE_VERBOSE_MAKEFILE
harus dinonaktifkan secara default dan pilihan pengguna, jika mereka membutuhkannya, untuk tujuan debugging.Atau cukup ekspor variabel lingkungan VERBOSE pada shell seperti ini:
export VERBOSE=1
sumber
Jika Anda menggunakan CMake GUI kemudian bertukar ke tampilan lanjutan dan kemudian opsi disebut CMAKE_VERBOSE_MAKEFILE.
sumber
Saya mencoba sesuatu yang serupa untuk memastikan
-ggdb
bendera itu ada.Panggil make di direktori bersih dan ambil bendera yang Anda cari. Mencari
debug
daripadaggdb
hanya menulis.make VERBOSE=1 | grep debug
The
-ggdb
bendera itu cukup jelas bahwa hanya perintah kompilasi muncul.sumber