Come posso rendere la build di Visual Studio molto dettagliata?


98

Devo recuperare ogni flag, ogni switch utilizzato nel processo di compilazione dai binari di Visual Studio. Ho provato a ottenere un output dettagliato utilizzando vcbuild, ma non ci sono riuscito.

Cosa devo fare per vedere tutto eseguito da Visual Studio per me? Non è necessario ottenere l'output nella finestra di compilazione. Ovunque andrebbe bene.


Risposte:


67
  1. Apri la finestra di dialogo delle proprietà del progetto, quindi scegli

    Proprietà di configurazione → C / C ++ → Generale

  2. Modificare l'impostazione per Suppress Startup BanneraNo

  3. La clriga di comando verrà visualizzata nella finestra di output.


1
Ciò influisce solo sul compilatore, non sul linker o sulle risorse.
— user2284570

6
In VS2017 questo "trucco" sembra non funzionare più. Tuttavia, la compilazione nel prompt dello sviluppatore utilizzando msbuild con la soluzione o il nome del file del progetto come argomento cli mostra la chiamata cl con i suoi argomenti.
— Emile Vrijdags

@EmileVrijdags posso vedere perfettamente l' cloutput del comando con VS2017 seguendo questi passaggi. Quindi il "trucco" funziona per me.
— nipote

150

Menu Strumenti → Opzioni → Progetti e soluzioni → Compila ed esegui → Livello di dettaglio dell'output di compilazione del progetto MSBuild : diagnostica


2
Questo non cambia nulla. Continuo a ricevere lo stesso output nella finestra di output.
— Geo

3
Funziona bene per me in VC10.
— abergmeier

2
@Geo ha effetto una volta riavviato Visual Studio.
— assenzio

@absynce, In VS 2017 questo non ha effetto anche al riavvio di Visual Studi0 2017. Sto usando l'edizione community di VS 2017. Quindi, questa funzionalità non sembra implementata correttamente in VS 2017.
— Sunil

65

Visual Studio 2008:

Vai al menu Strumenti → Opzioni quindi Progetto e soluzioni → sezione Costruisci ed esegui . Hai una casella combinata per la verbosità.

Opzione del compilatore C ++ (proprietà del progetto):

  • Preprocessore - Genera file preelaborato per vedere l'unità di traduzione come generata dal preprocessore
  • Avanzate - Mostra include - mostra i nomi dei file inclusi nell'output del compilatore

1
Ciò non mostra i flag di compilazione e linker, solo i nomi di file che vengono elaborati. È possibile vedere i comandi esatti che vengono eseguiti o questo è impossibile con VS?
— stefanB

2
@stefanB: non hai bisogno di flag speciali per questo. Le righe di comando per il compilatore e il richiamo del linker possono essere trovate nella finestra di dialogo delle opzioni o nel registro di compilazione scritto nella directory intermedia.
— Yakov Galka

8

Se stai utilizzando MSBuild, puoi impostare il flag / v: diag.


Come dovrei eseguire MSBuild?
— Geo

avvia il prompt dei comandi di Visual Studio (si trova nel menu Start), quindi esegui il progetto di Visual Studio con: MSBuild {ProjectName}
— Joe

ad es. MsBuild myProject.csproj
— Joe il

Vedo chiamate MSBuild vcbuild, ma vcbuild non mostra i flag / switch che sta utilizzando.
— Geo

Questa è la risposta corretta credo. La semplice disattivazione della soppressione dei vari banner non produce ancora tutto. In particolare, il passaggio di compilazione delle risorse era quello che stavo cercando.
— Giovanni

5

In Visual Studio vai al tuo progetto e fai clic destro su di esso e seleziona proprietà. In Linker c'è un'opzione della riga di comando. Lì hai tutte le opzioni e puoi aggiungere quelle personalizzate. Aggiungi /VERBOSEe quando colleghi Visual Studio mostrerà molte più informazioni.


1
Mostra più informazioni, ma non mostra gli strumenti chiamati per la compilazione.
— Geo

2
Visual Studio ha uno strumento di creazione chiamato nmake. Puoi esportare il tuo progetto in quei makefile e crearlo da una console dos msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx . L'ultima volta che ho fatto qualcosa di simile (ma ho usato CMake per generare i makefile nmake) tutti i comandi sono stati stampati nel display della console.
— javier-sanz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.