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 has --debug
, mais il ne semble pas être utile. Y a-t-il d'autres options? CMake fournit-il des indicateurs supplémentaires dans le Makefile généré à des fins de débogage?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Réponses:
Lorsque vous exécutez make, ajoutez
VERBOSE=1
pour voir la sortie de commande complète. Par exemple:Ou vous pouvez ajouter
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
à la commande cmake pour une sortie de commande verbeuse permanente à partir des Makefiles générés.Pour réduire certaines sorties potentiellement moins intéressantes, vous pouvez utiliser les options suivantes. L'option
CMAKE_RULE_MESSAGES=OFF
supprime les lignes comme [33%] Building C object ... , alors que--no-print-directory
make n'imprime pas le répertoire courant en filtrant les lignes commemake[1]: Entering directory
etmake[1]: Leaving directory
.la source
cmake -GNinja . ; ninja -v
affiche une sortie verbeuse très agréable avec un minimum de peluches.cmake --build . -- VERBOSE=1
Il est pratique de définir l'option dans le
CMakeLists.txt
fichier comme:la source
CMAKE_VERBOSE_MAKEFILE
devrait être désactivé par défaut et le choix d'un utilisateur, s'il en a besoin, à des fins de débogage.Ou exportez simplement la variable d'environnement VERBOSE sur le shell comme ceci:
export VERBOSE=1
la source
Si vous utilisez l'interface graphique CMake, passez à la vue avancée, puis l'option s'appelle CMAKE_VERBOSE_MAKEFILE.
la source
J'essayais quelque chose de similaire pour m'assurer que le
-ggdb
drapeau était présent.Appelez make dans un répertoire propre et grep le drapeau que vous recherchez. Je cherche
debug
plutôt queggdb
j'écris.make VERBOSE=1 | grep debug
Le
-ggdb
drapeau était suffisamment obscur pour que seules les commandes de compilation apparaissent.la source