簡體   English   中英

我怎么知道什么選項從CMake傳遞給GCC?

[英]How do I know what options are being passed to GCC from CMake?

我正在嘗試構建一個在其構建系統中使用CMake的大型開源項目(Clang)。 我在Windows上使用MinGW64。

生成的命令是:

cmake --build . --config Debug --target clang

我在構建時遇到問題,因此我想診斷正在向GCC發送哪些命令。 例如,我想知道是否設置了-g

如何查看CMake構建觸發的GCC命令列表?

VERBOSE=1 make | more

例:

[ 14%] Building CXX object public_api/CMakeFiles/secr_api_tests.dir/tests/exception_test.cpp.o
cd /Users/rhodges/secr/netbeans-secr/public_api && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -I/Users/rhodges/secr/secr/public_api/src -I/Users/rhodges/secr/netbeans-secr/public_api/src -I/Users/rhodges/secr/secr/public_api/tests -I/Users/rhodges/secr/netbeans-secr/public_api/tests -isystem /Users/rhodges/secr/secr/public_api/include -isystem /Users/rhodges/secr/netbeans-secr/public_api/include -isystem /Users/rhodges/secr/netbeans-secr/target_local/include -isystem /Users/rhodges/secr/secr/valuelib/debug/include -isystem /Users/rhodges/secr/netbeans-secr/valuelib/debug/include -isystem /Users/rhodges/secr/secr/valuelib/data/include -isystem /Users/rhodges/secr/netbeans-secr/valuelib/data/include -isystem /Users/rhodges/secr/secr/valuelib/tuple/include -isystem /Users/rhodges/secr/netbeans-secr/valuelib/tuple/include -isystem /Users/rhodges/secr/secr/valuelib/immutable/include -isystem /Users/rhodges/secr/netbeans-secr/valuelib/immutable/include -isystem /Users/rhodges/secr/secr/valuelib/stdext/include -isystem /Users/rhodges/secr/netbeans-secr/valuelib/stdext/include  -std=gnu++14 -o CMakeFiles/secr_api_tests.dir/tests/exception_test.cpp.o -c /Users/rhodges/secr/secr/public_api/tests/exception_test.cpp
...

正如Richard Hodges所說, VERBOSE=1 make是主要的便捷方式。

另一種方法是在您的CMake調用中添加-DCMAKE_EXPORT_COMPILE_COMMANDS=ON ,這將生成一個文件compile_commands.json ,其中包含每個文件的編譯標志的機器可讀數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM