web-dev-qa-db-fra.com

Comment utiliser GCC avec Microsoft Visual Studio?

Je crée un très grand projet (quelques milliers de lignes) et je préférerais donc ne pas utiliser Notepad ++. Un IDE faciliterait grandement les choses. J'ai de l'expérience avec Microsoft Visual Studio et j'adore ça. Existe-t-il un moyen simple d'utiliser GCC de Cygwin à partir de Microsoft Visual Studio? 

Sinon, y a-t-il d'autres bons IDE Windows pour GCC en plus de NetBeans et Eclipse? (Je les déteste tous les deux avec passion.)

38
MasterGberry

Il y a plusieurs façons d'aller ici:

Option 1: Créer un outil de construction personnalisé

Visual Studio 2005 et versions ultérieures vous permettront d’enregistrer des outils de construction personnalisés . Ils indiquent à IDE comment transformer les fichiers d'un formulaire (par exemple, un fichier .cpp) en un autre formulaire (par exemple, un fichier .obj).

Pour autant que je sache, personne ne l’a encore fait pour GCC. Et pour le faire vous-même, vous devez écrire du code COM, qui est probablement un pool trop profond pour être plongé dans un seul projet. Vous devez avoir une raison impérieuse pour entreprendre ce projet.

Vous devez ensuite ajuster manuellement chaque projet pour lui dire d'utiliser l'outil de génération personnalisé au lieu de l'outil par défaut, car vous utilisez une extension de nom de fichier (.cpp, probablement) déjà connue de Visual C++. Vous aurez des problèmes si vous essayez de mélanger les compilateurs VC++ et g ++ pour un seul exécutable construit à partir de plusieurs modules.

Sur le plan positif, si vous cherchiez à démarrer un projet open source, cela me semble un bon projet. Je m'attends à ce que vous rassembliez rapidement une base d'utilisateurs importante.

Option 2: Projet Makefile

  1. Démarrez Visual Studio et dites Fichier> Nouveau projet.

  2. Dans la section Visual C++, sélectionnez Projet Makefile

    Ne cochez pas la case proposée pour archiver le projet dans le contrôle de source si vous utilisez Visual Studio Express. Si vous ne payez pas pour Visual Studio, vous choisissez probablement également de ne pas payer pour les "solutions" coûteuses de l'équipe Microsoft et VSE ne prend pas en charge les plug-ins tiers VCS , tels que AnkhSVN. pour Subversion .

  3. Remplissez l'assistant de projet Makefile:

    • Construire la ligne de commande: make
    • Commandes Clean: make clean
    • Reconstruire en ligne de commande: tout nettoyer

Laissez le champ Output (pour le débogage) seul, à moins que vous ne fassiez quelque chose de bizarre, comme ne pas nommer l'exécutable d'après le nom du projet ou placer le nom de l'exécutable ailleurs que dans le niveau supérieur du projet.

Laissez le reste des champs seul, à moins que vous ne sachiez ce qu'ils sont et pourquoi vous voulez les changer. À titre d'exemple, vous pouvez choisir de passer un indicateur -D sur la ligne Preprocessor definitions pour obtenir des sorties de débogage et de publication distinctes. Si vous savez que vous voulez cela, vous savez comment le configurer. Je ne vais donc pas faire cette longue réponse encore plus longtemps pour l'expliquer. (Et si vous ne savez pas comment mais que vous voulez, c'est probablement un bon sujet pour une nouvelle question SO!)

On vous posera le même ensemble de questions pour la version Release. Si vous souhaitez utiliser des versions distinctes pour le débogage et la publication, vous pouvez apporter des modifications ici.

Cela fait, vous devez toujours créer la Makefile et ajouter un make.exe à votre PATH. Comme avec la question de débogage contre version, entrer dans ce niveau de détail pousserait cette réponse hors sujet.

Aussi moche que cela puisse paraître, c'est toujours plus facile que de créer des outils de construction personnalisés. De plus, vous dites que vous devez éventuellement porter un port sur Unix, vous aurez donc besoin de cette Makefile de toute façon.

Option 3: développement multiplate-forme

Vous dites que vous souhaitez porter ce programme sous Unix à un moment donné, mais cela ne signifie pas que vous devez maintenant utiliser GCC sous Windows. Il est tout à fait possible d’écrire votre programme pour qu’il soit généré sous Visual C++ sous Windows et GCC/Makefiles sur des systèmes * ix.

Il existe même plusieurs outils qui facilitent cela, en générant des fichiers de projet VS et des Makefiles à partir d'une source commune unique. Il m'est arrivé d'utiliser Bakefile , mais CMake est devenu plus populaire ces dernières années. SCons fait également ce travail, et est probablement aussi plus populaire que Bakefile; c'est certainement mis à jour plus souvent.

32
Warren Young

Je viens du futur.

Je conserve une chaîne d'outils C/C++ à l'aide de Code visuel sur Win/Lin/Mac et MinGW installés à partir de Choclatey . tu veux)

Je l'ai exécuté avec GCC et GDB avec IntelliSense à l'aide des fichiers de création JSON étranges de MS . pour l'instant les exemples en ligne dans la documentation semblent fonctionner.

Il semble nécessiter trois types de choses JSON;

  • un seul IntelliSense configuration pour tout l'espace de travail
  • a Configuration de débogage entrée pour chaque binaire que vous souhaitez déboguer
    • ceux-ci peuvent invoquer les tâches de construction
  • a Tâche de construction per-artefact
    • Je ne pense pas qu'il y ait un "besoin" ou une "dépendance" truc-mah-bob; Pardon
1
pal