2009-10-30 12 views
11

Devo eseguire il porting della build di una DLL da Building in Visual Studio a un altro sistema di compilazione. La soluzione DLL non è stata creata da me e ha molti switch a riga di comando modificati. Ho copiato le opzioni del compilatore/linker daCome posso ottenere esattamente la riga di comando del compilatore da Visual Studio?

Proprietà progetto -> Proprietà config. -> C/C++ -> Comando Linea Proprietà progetto -> Proprietà config -> Linker -> Riga di comando

Tuttavia, quando costruisco la DLL dal mio altro strumento di compilazione (e ho anche provato un semplice file batch) la DLL ha una dimensione leggermente diversa e causa un crash a volte quando viene usata la DLL (che quella costruita da vis studio non lo fa).

Quindi la mia domanda è:

  1. C'è un modo migliore per vedere la linea di comando esatto di quello che c'è in vis pagina delle proprietà dello studio?

  2. Does Vis Studio do nessuna magia pazzo di là di ciò che sta accadendo sulla linea di comando (Spero che la risposta a questa domanda è no!) :-)

risposta

9

Qualcosa da tenere a mente è che a linea di comando le opzioni possono essere impostate anche per file sorgente, non solo per progetto, che potrebbe essere ciò che ti manca.

Un modo per vedere tutto ciò che sta accadendo è guardare il registro di costruzione. Alla fine della compilazione nella vista Output, dovresti vedere una riga come:

Il log di compilazione è stato salvato in "percorso file".

Ctrl-clic il percorso del file nella vista di output e caricherà il file di log, e si dovrebbe vedere tutte le righe di comando per ogni file.

Aggiornamento:

Questa risposta è stata per Visual Studio 2008. È possibile ottenere non è più il link nella finestra di output nelle nuove versioni di Visual Studio. Invece devi navigare nella directory di costruzione per il tuo progetto per vedere il file di registro. Vedi qui:

https://msdn.microsoft.com/en-us/library/jj651643.aspx

realtà che puntano è leggermente sbagliata. Il file di registro ha un'estensione .log piuttosto che .txt.

+0

Grazie per questo! Ho capito il mio problema dal registro di costruzione. Ho avuto tutti gli switch di compilazione/collegamento corretti ma non avevo aggiunto il manifest alla DLL che stava facendo fallire il collegamento in fase di esecuzione. Vengo da uno sfondo linux quindi non ero troppo consapevole delle DLL e di tutte le loro complessità. – Benj

+0

Non lo vedo. Tutto quello che ottengo è un collegamento al file exe che viene creato, senza la parte "log di costruzione è stato salvato nel percorso del file". –

+0

come gli stati di @BryceSandlund, l'output di build non sempre fornisce il percorso del file di registro (dubito che scriva anche un log). Tuttavia puoi avere un output dettagliato/debug nell'interfaccia utente: menu Strumenti> Opzioni; Progetti e soluzioni> Costruisci ed esegui> Verbosità di output del progetto MSBuild. Personalmente consiglierei di andare con un registro "Dettagliato", di solito dovrebbe darti le informazioni desiderate. –

Problemi correlati