J'utilise CMake avec GNU Make et je voudrais voir toutes les commandes exactement (par exemple, comment le compilateur est exécuté, tous les drapeaux, etc.).
GNU make a --debug
, mais cela ne semble pas être utile. Existe-t-il d’autres options? CMake fournit-il des indicateurs supplémentaires dans le Makefile généré à des fins de débogage?
Lorsque vous exécutez make, ajoutez VERBOSE=1
pour afficher le résultat complet de la commande. Par exemple:
cmake .
make VERBOSE=1
Ou vous pouvez ajouter -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
à la commande cmake pour obtenir une sortie de commande verbeuse permanente à partir des fichiers Makefiles générés.
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
Pour réduire certaines sorties peut-être moins intéressantes, vous pouvez utiliser les options suivantes. L'option CMAKE_RULE_MESSAGES=OFF
supprime les lignes telles que [33%] objet de bâtiment C ..., tandis que --no-print-directory
indique à make de ne pas imprimer le répertoire actuel en filtrant les lignes telles que make[1]: Entering directory
et make[1]: Leaving directory
.
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory
Il est pratique de définir l’option dans le fichier CMakeLists.txt
comme suit:
set(CMAKE_VERBOSE_MAKEFILE ON)
Si vous utilisez l'interface graphique de CMake, passez à la vue avancée, puis l'option s'appelle CMAKE_VERBOSE_MAKEFILE.
Ou exportez simplement la variable d’environnement VERBOSE sur le shell comme ceci: export VERBOSE=1
J'essayais quelque chose de similaire pour m'assurer que le drapeau -ggdb
était présent.
Appelez make dans un répertoire vide et grep l'indicateur que vous recherchez. Vous recherchez debug
plutôt que ggdb
je voudrais simplement écrire.
make VERBOSE=1 | grep debug
Le drapeau -ggdb
était suffisamment obscur pour que seules les commandes de compilation soient affichées.