Domanda

Esiste un modo per utilizzare il compilatore GCC pur essendo in grado di sviluppare tramite l'IDE di Visual Studio?

Il nostro progetto è multipiattaforma e abbastanza spesso mi trovo nei guai a causa del mio collega perché sto registrando codice non conforme agli standard (questo può essere attribuito al compilatore VS!).

Mi piacerebbe comunque essere in grado di compilare utilizzando il compilatore MS, così posso continuare a eseguire il debug, ecc., Tuttavia mi piacerebbe essere in grado di interruttore per compilare utilizzando GCC, solo per essere sicuro di non interrompere la compilazione su altre piattaforme.

È possibile?

È stato utile?

Soluzione

Ciò che sto per suggerire richiederebbe comunque un makefile, quindi ripeto parzialmente il consiglio di una risposta precedente.Oppure, come ti accennavo anche prima, magari hai già un makefile, in tal caso ti basteranno ancora meno passaggi per realizzare quello che sto per descriverti.

Una volta che conosci il comando specifico della riga di comando di Windows per richiamare make o g++ sul tuo codice, crea un "evento pre-compilazione" nel tuo progetto Visual Studio.("Proprietà del progetto >> Proprietà di configurazione >> Eventi di compilazione >> Evento di pre-compilazione").

L'evento di pre-compilazione può richiamare uno script di file bat o qualsiasi altro script sul tuo computer e tale script sarà in grado di restituire un codice di errore.In sostanza, "script OK" o "script FAILED" è l'entità della quantità di comunicazione che il tuo script può avere RITORNO a Visual Studio.

Lo script non vede automaticamente tutte le variabili di ambiente di Visual Studio (come $(InputDir), $(ProjectDir), $(SolutionName), ecc.), tuttavia puoi utilizzare tali variabili quando specifichi come chiamare lo script.In altre parole, puoi passare questi valori allo script come argomenti.

Configuralo in modo che ogni volta che crei in Visual Studio, l'evento di pre-compilazione tenterà PRIMA di eseguire make/g++ sul tuo codice.Se il tuo script (quello che chiama make/g++) rileva qualche problema, allora lo script restituisce un errore e la compilazione può essere ARRESTATA in quel momento.Lo script può essere stampato su stdout o stderr e l'output dovrebbe essere visibile nella finestra di output di Visual Studio Build (la finestra che di solito mostra cose come "========== Build:3 riusciti, 0 falliti").

Puoi far stampare lo script:

"BUILD FAILED, rilevato codice non portatile, make/g++ ha restituito quanto segue:........."

In questo modo non è necessario ricordarsi di passare periodicamente da Visual Studio alla riga di comando.Verrà eseguito automaticamente per te ogni volta che costruisci.

Altri suggerimenti

Ci sono sicuramente modi per farlo: questo è il modo in cui sviluppiamo per PS3 con la toolchain di Sony (che è basata su gcc).Non so esattamente come funzioni, ma si integra perfettamente in VS.

Penso che quello che devi fare sia configurarlo per essere compilato con un makefile (probabilmente più semplice) o scrivere un programma wrapper che converta gli argomenti VC in quelli gcc.Inoltre, se desideri l'output di errore/avviso nel formato VS (in modo da poter fare clic su di esso e ottenere il file/la riga nell'editor), hai bisogno di qualcosa per convertire l'output.

Questa roba potrebbe aiutarti una discussione correlata Informazioni sull'uso di VS con la versione WRS/VXWorks degli strumenti GCC:

Si noti in particolare il programma collegato lì che converte l'output dell'errore.

Non penso che ci sia un semplice passaggio, perché le opzioni della riga di comando di gcc sono molto diverse dai VS.In ogni caso, eseguire semplicemente il compilatore non sarà banale, poiché il tuo sistema di compilazione probabilmente imposta una serie di definizioni del preprocessore e variabili di compilazione che devono essere impostate affinché la compilazione abbia successo.

Se il tuo collega sta lavorando su Unix, probabilmente ha comunque un sistema di compilazione basato su make, scons o cmake.Puoi usare Cygwin per installare la toolchain Unix standard su Windows, inclusi gcc, make, flex, bison e tutte le altre chicche Unix.Esistono versioni native di scons e cmake, ma proveranno a utilizzare VS, quindi questo non ti aiuterà.Non ho provato a installarli tramite Cygwin per vedere se questo li costringe a gcc, ma potrebbe non essere rilevante per te.

Creare un sistema make che utilizzi il compilatore VS è possibile ma doloroso (ci sono stato, l'ho fatto).E una domanda diversa.;)

È quindi possibile utilizzare un buildstep speciale per eseguire la compilazione gcc dall'interno di VS.Sarebbe meglio avere un target di build separato (come Debug e Release) e puoi crearli nei file di progetto (sono solo file ASCII, controllali), ma non sono abbastanza una persona VS da so quanto sarebbe facile farlo.Mantenerlo aggiornato sarà un po' faticoso, potresti voler scrivere uno script per crearlo automaticamente.

Ho dovuto mantenere makefile separati per la compilazione con gcc.È previsto un costo iniziale associato all'apprendimento del make, ma trarrai vantaggio dalla conoscenza approfondita del tuo codice e dalle differenze tra VS C++ e gcc.Quando l'ho fatto, stavo usando VC 6, quindi ora potrebbe esserci un modo migliore con VS 2005.

Prova Cygwin, purché imposti correttamente tutti i tuoi Makefile puoi sempre provare a compilare sia su VS che su GCC

dipende dalla complessità dei file di progetto:

hai sicuramente bisogno di un ambiente gcc come Cygwin.

  • per piccoli progetti o compilazione di file singoli è possibile utilizzare uno strumento di creazione personalizzato (file di regole)

  • per progetti/soluzioni di grandi dimensioni sto generando automaticamente un file configure/make degli autotools dal file vcproj/sln e lo compilo all'interno dell'IDE.i file sorgente/righe di avvisi ed errori di gcc vengono tradotti nel loro equivalente IDE (cliccabile nella finestra di output).

Presumibilmente stai già utilizzando makefile per creare il tuo progetto, poiché è multipiattaforma.Rendi semplicemente il tuo progetto VS un progetto makefile con diverse configurazioni di progetto che avviano il makefile utilizzando parametri diversi per indicare se una build è o meno per MSVC o GCC.

Se la build del tuo makefile MSVC è in grado di creare file di debug (PDB), cosa che dovrebbe essere in grado di fare, anche VS Debugger funzionerà perfettamente.

Quindi creare utilizzando GCC all'interno di Visual Studio è semplice come selezionare il menu a discesa di configurazione "GCC" sulla barra degli strumenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top