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?
Ou, para adicionar alguns termos de pesquisa, como ocultar linhas de comando executadas completas e detalhadas e mostrar apenas a porcentagem de saída silenciosa concisa.
— Ulidtko 17/05
Não CMake superconjunto: stackoverflow.com/questions/5820303/...
Ao executar o make, adicione VERBOSE=1para ver a saída completa do comando. Por exemplo:
Ou você pode adicionar -DCMAKE_VERBOSE_MAKEFILE:BOOL=ONao 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=OFFremove linhas como [33%] do objeto Building C ... , enquanto o --no-print-directorytell faz para não imprimir o diretório atual, filtrando as linhas como make[1]: Entering directorye make[1]: Leaving directory.
Essas soluções tornam muito detalhada, imprimindo muito CMake e criando componentes internos que não são interessantes. Existe alguma maneira de mostrar apenas comandos de compilação e link (ou seja, o que geralmente é relevante para problemas de depuração). Talvez até exiba apenas o comando que falhou.
O principal hit do google recomenda "se você quiser ver apenas as linhas de comando do g ++, use grep & Co. - se possível - em conexão com os Makefiles detalhados" . Talvez desenvolvedores com muita experiência em cmake tenham outros conselhos.
A propósito, se você estiver em uma plataforma compatível, ela cmake -GNinja . ; ninja -vmostra uma saída detalhada muito agradável com o mínimo de cotão.
Linha única ...cmake --build . -- VERBOSE=1
Aparentemente, eu devo estar trabalhando com uma versão mais recente cmake, porque não há makefiles encontrados no meu diretório de compilação após a execução cmake ...
É conveniente definir a opção no CMakeLists.txtarquivo como:
— James Hirschorn
Por favor, não faça isso para seus próprios projetos. Nem todos os usuários podem querer ver sua saída detalhada da compilação. Não force isso em todo mundo que consome sua biblioteca. CMAKE_VERBOSE_MAKEFILE deve estar desativado por padrão e a escolha do usuário, se necessário, para fins de depuração.
Assim? Você sempre pode adicioná-lo como uma variável de cache se tiver vários desenvolvedores e desejar dar uma opção a eles. Mas sim, em uma versão de lançamento de um projeto, você deve desativá-lo por padrão.
— James Hirschorn 24/03
Essa é uma ótima opção ao usar o qt.io QtCreator porque o cmake é chamado pela GUI. Obrigado!
— Grant Rostig 11/02/19
Ou simplesmente exporte a variável de ambiente VERBOSE no shell da seguinte maneira: export VERBOSE=1
Se você usar a GUI do CMake, troque para a visualização avançada e a opção será chamada CMAKE_VERBOSE_MAKEFILE.
Como posso definir essa opção em arquivos de texto, sem usar a GUI?
Eu estava tentando algo semelhante para garantir que a -ggdbbandeira estivesse presente.
Ligue para make em um diretório limpo e grep a bandeira que você está procurando. Procurando em debugvez de ggdbescrever.