Eu uso o CMake com o GNU Make e gostaria de ver todos os comandos exatamente (por exemplo, como o compilador é executado, todos os sinalizadores etc.).
O GNU make tem --debug
, mas não parece ser tão útil, existem outras opções? O CMake fornece sinalizadores adicionais no Makefile gerado para fins de depuração?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Respostas:
Ao executar o make, adicione
VERBOSE=1
para ver a saída completa do comando. Por exemplo:Ou você pode adicionar
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
ao comando cmake para saída de comando detalhado permanente a partir dos Makefiles gerados.Para reduzir uma saída possivelmente menos interessante, você pode usar as seguintes opções. A opção
CMAKE_RULE_MESSAGES=OFF
remove linhas como [33%] do objeto Building C ... , enquanto o--no-print-directory
tell faz para não imprimir o diretório atual, filtrando as linhas comomake[1]: Entering directory
emake[1]: Leaving directory
.fonte
cmake -GNinja . ; ninja -v
mostra uma saída detalhada muito agradável com o mínimo de cotão.cmake --build . -- VERBOSE=1
É conveniente definir a opção no
CMakeLists.txt
arquivo como:fonte
CMAKE_VERBOSE_MAKEFILE
deve estar desativado por padrão e a escolha do usuário, se necessário, para fins de depuração.Ou simplesmente exporte a variável de ambiente VERBOSE no shell da seguinte maneira:
export VERBOSE=1
fonte
Se você usar a GUI do CMake, troque para a visualização avançada e a opção será chamada CMAKE_VERBOSE_MAKEFILE.
fonte
Eu estava tentando algo semelhante para garantir que a
-ggdb
bandeira estivesse presente.Ligue para make em um diretório limpo e grep a bandeira que você está procurando. Procurando em
debug
vez deggdb
escrever.make VERBOSE=1 | grep debug
A
-ggdb
bandeira era obscura o suficiente para que apenas os comandos de compilação aparecessem.fonte