GNU/Linux >> Tutoriels Linux >  >> Linux

Création de commandes d'impression CMake avant l'exécution

Une option, qui s'applique à GNU make et fonctionne avec n'importe quel Makefile, qu'il soit généré par CMake ou non, consiste à utiliser le --trace option à faire. Cela imprimera les commandes make est en cours d'exécution et continue de les exécuter.

Cela s'applique à toutes les commandes, pas seulement à celles qui VERBOSE=1 ou V=1 déclenche l'impression des makefiles générés par CMake/automake.

Et encore une autre alternative sous Linux est d'exécuter make sous strace, comme strace -f -e trace=execve make <make options> . La sortie de strace inclura chaque processus qui est exécuté :par make, par un script shell qui make run, etc.

Par exemple, vous pouvez constater que le makefile généré par CMake exécute /usr/bin/cmake -E __run_co_compile <lots of options ...> et je me demande toujours quelles sont les invocations exactes du compilateur que cela exécutera à son tour. Vous pouvez l'obtenir avec la méthode strace.


Je suis à peu près sûr que cela fonctionnera :

make VERBOSE=1

Vous devriez également pouvoir ajouter ceci à votre CMakeLists.txt pour définir de manière permanente :

set(CMAKE_VERBOSE_MAKEFILE on)

Ceci est couvert dans la FAQ de CMake.


Pour les Makefiles générés par automake, essayez :

make V=1

Linux
  1. Est-il possible d'appliquer les commandes intégrées à Bash ?

  2. Exécuter une commande à distance sur une connexion Ssh, avant de se connecter ?

  3. Aide-mémoire des commandes Linux

  4. Comment utiliser les commandes strace et ltrace sous Linux

  5. Principes de base de la ligne de commande Linux - Exécution de commandes à partir de la ligne de commande

12 commandes amusantes de Linux qui peuvent vous faire rire

Comment savoir ce qu'une commande ou un programme fera exactement avant de l'exécuter

Comment puis-je faire en sorte que grep imprime les lignes en dessous et au-dessus de chaque ligne correspondante?

Bash :exécuter des commandes depuis un chroot et changer d'utilisateur

Comment faire en sorte que les commandes de Mathematica 8 utilisent tous les cœurs ?

Faites en sorte que ls imprime tout sur une seule ligne (comme dans le terminal)