Question

Existe-t-il un moyen d'utiliser le compilateur GCC tout en permettant de développer via l'EDI de Visual Studio?

Notre projet est multi-plateforme, et mon collègue me pose souvent problème, car j'effectue une vérification. code qui n'est pas conforme aux normes (ceci peut être attribué au compilateur VS!).

J'aimerais quand même pouvoir compiler à l'aide du compilateur MS afin de pouvoir continuer le débogage, etc. Toutefois, j'aimerais pouvoir passer à la compilation avec GCC, juste pour que je peux être sûr que je ne casse pas la construction sur d'autres plates-formes.

Est-ce possible?

Était-ce utile?

La solution

Ce que je suis sur le point de suggérer nécessiterait tout de même un fichier Make. Je répète donc en partie les conseils d'une réponse précédente. Ou, comme cela a également été mentionné plus tôt, vous avez peut-être déjà un fichier makefile, auquel cas vous aurez encore moins d’étapes pour accomplir ce que je suis sur le point de décrire.

Une fois que vous connaissez votre commande de ligne de commande Windows spécifique pour appeler make ou g ++ dans votre code, vous créez un " événement de pré-construction " dans votre projet Visual Studio. ("Propriétés du projet",> Propriétés de configuration,>> Événements de construction,> Evénement de pré-génération ").

L'événement de pré-construction peut appeler un script de fichier bat, ou tout autre script de votre ordinateur, et ce script pourra renvoyer un code d'erreur. Essentiellement, " script OK, " ou " script FAILED " est l’étendue de la quantité de communication que votre script peut avoir RETOUR à visual studio.

Le script ne voit pas automatiquement toutes les variables d'environnement de Visual Studio (telles que $ (InputDir), $ (ProjectDir), $ (Nom de la solution), etc.). Toutefois, vous pouvez utiliser ces variables lorsque vous indiquez comment appeler le scénario. En d'autres termes, vous pouvez transmettre ces valeurs au script sous forme d'arguments.

Configurez-le de sorte que, chaque fois que vous construisez dans Visual Studio, l'événement de pré-génération tente d'abord d'exécuter make / g ++ sur votre code. Si votre script (celui qui appelle make / g ++) détecte un problème, le script retourne une erreur et la construction peut être interrompue immédiatement. Le script peut imprimer sur stdout ou stderr et cette sortie doit être visible pour vous dans la fenêtre de sortie de Visual Studio Build (la fenêtre qui affiche généralement des éléments tels que " ========= Build: 3 a réussi, 0 a échoué & ;).

Vous pouvez faire imprimer le script:

"BUILD FAILED, code non portable détecté, make / g ++ a renvoyé ce qui suit: ........." "

Ainsi, vous n'avez pas à vous souvenir de passer périodiquement de Visual Studio à la ligne de commande. Ce sera fait automatiquement pour vous chaque fois que vous construirez.

Autres conseils

Il existe certainement des moyens de le faire. C’est ainsi que nous développons pour la PS3 avec la chaîne d’outils de sony (basée sur gcc). Je ne sais pas exactement comment cela fonctionne, mais cela s'intègre parfaitement au VS.

Je pense que ce que vous devez faire est soit de le configurer pour qu'il soit construit avec un fichier makefile (probablement le plus facile) ou d'écrire un programme de wrapper qui convertit les arguments de VC en gcc. De plus, si vous voulez que le résultat de l'erreur / avertissement soit au format VS (pour pouvoir cliquer dessus et obtenir ce fichier / aligner dans l'éditeur), vous avez besoin de quelque chose pour convertir le résultat.

Ces informations peuvent vous aider à une discussion connexe à propos de en utilisant VS avec la version WRS / VxWorks des outils gcc:

Notez particulièrement le programme lié à celui-ci qui convertit la sortie d'erreur.

Je ne pense pas qu'il existe un commutateur simple, car les options de ligne de commande de gcc sont très différentes de celles des VS. Dans tous les cas, exécuter le compilateur ne sera pas trivial, car votre système de construction définit probablement un ensemble de définitions de préprocesseur et des variables de construction qui doivent être définies pour que la compilation réussisse.

Si votre collègue travaille sur Unix, il a probablement un système de compilation make, scons ou basé sur cmake. Vous pouvez utiliser Cygwin pour installer la chaîne d'outils Unix standard sous Windows, notamment gcc, make, flex, bison et tous les autres. autres goodies Unix. Il existe des versions natives de scons et de cmake, mais celles-ci essaieront d'utiliser VS, ce qui ne vous aidera pas. Je n'ai pas essayé de les installer via Cygwin pour voir si cela les oblige à utiliser gcc, mais cela pourrait ne pas vous intéresser.

Créer un système de création utilisant le compilateur VS est possible mais pénible (été fait, fait ça). Et une autre question. ;)

Vous pouvez ensuite utiliser un buildstep spécial pour exécuter la compilation gcc depuis l’intérieur de VS. Il serait préférable d'avoir une cible de construction distincte (comme Debug et Release), et vous pouvez créer ceux-ci dans les fichiers du projet (ce ne sont que des fichiers ASCII, vérifiez-les), mais je ne suis pas assez d'un VS pour sachez combien cela serait facile à faire. Le garder à jour sera un peu pénible, vous pouvez écrire un script pour le créer automatiquement.

Je devais maintenir des makefiles séparés pour la compilation avec gcc. Il existe un coût initial associé à l’apprentissage, mais vous bénéficierez de la connaissance intime de votre code et des différences entre VS C ++ et gcc. Quand j’ai fait cela, j’utilisais VC 6, il existe donc peut-être une meilleure solution avec VS 2005.

Essayez Cygwin, tant que vous configurez correctement tous vos Makefiles, vous pouvez toujours essayer de compiler à la fois sur VS et sur GCC

Cela dépend de la complexité de vos fichiers de projet:

vous avez vraiment besoin d’un environnement gcc comme cygwin.

  • pour les petits projets ou la compilation de fichiers uniques, vous pouvez utiliser un outil de construction personnalisé (fichier de règles)

  • pour les projets / solutions volumineux, je crée automatiquement un fichier autotools configure / makefile à partir du fichier vcproj / sln et le compile dans l'EDI. Les fichiers sources / les lignes d’avertissements et les erreurs de gcc sont traduits en équivalent IDE (cliquable dans la fenêtre de sortie).

Vraisemblablement, vous utilisez déjà un makefile pour construire votre projet, car il est multi-plateforme. Faites simplement de votre projet VS un projet makefile avec différentes configurations de projet qui lancent le makefile en utilisant différents paramètres pour indiquer si une construction est destinée ou non à MSVC ou à GCC.

Si votre build de fichier MSVC est capable de créer des fichiers de débogage (PDB) - ce qu'il devrait pouvoir faire, le débogueur VS fonctionnera également de manière transparente.

Construire à l'aide de GCC dans Visual Studio est aussi simple que de sélectionner le menu déroulant "GCC" dans la barre d'outils.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top