[英]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.