GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione di comandi di stampa CMake prima dell'esecuzione

Un'opzione, che si applica a GNU make e funziona con qualsiasi Makefile, generato o meno da CMake, è usare --trace opzione da fare. Questo stamperà i comandi make è in esecuzione e continua a eseguirli.

Questo vale per tutti i comandi, non solo per quelli che VERBOSE=1 o V=1 attiva la stampa dei makefile generati da CMake/automake.

E ancora un'altra alternativa su Linux è eseguire make sotto strace, come strace -f -e trace=execve make <make options> . L'output di strace includerà every processo che viene eseguito:da make, da uno script di shell che make ha eseguito, ecc.

Ad esempio, potresti scoprire che il makefile generato da CMake esegue /usr/bin/cmake -E __run_co_compile <lots of options ...> e mi chiedo ancora quali siano le esatte invocazioni del compilatore che questo a sua volta verrà eseguito. Puoi ottenerlo con il metodo strace.


Sono abbastanza sicuro che funzionerà:

make VERBOSE=1

Dovresti anche essere in grado di aggiungere questo al tuo CMakeLists.txt per impostarlo in modo permanente:

set(CMAKE_VERBOSE_MAKEFILE on)

Questo è trattato nelle FAQ di CMake.


Per i Makefile generati da automake, prova:

make V=1

Linux
  1. È possibile tracciare i comandi integrati su Bash?

  2. Fare meno stampe su Stdout se è possibile visualizzare un intero file su uno schermo?

  3. Esecuzione di un comando remoto sulla connessione Ssh, prima dell'accesso?

  4. Esecuzione di comandi pipe in parallelo?

  5. Come leggere l'intero script della shell prima di eseguirlo?

12 comandi divertenti di Linux che possono farti ridere

Come sapere cosa farà esattamente un comando o un programma prima di eseguirlo

Come posso fare in modo che grep stampi le righe sotto e sopra ogni riga corrispondente?

Utilizzo dell'output dei comandi precedenti in bash

Genera due diversi pacchetti usando CPack in cmake:Linux

Come fare in modo che i comandi in Mathematica 8 utilizzino tutti i core?