Question

Je recherche un outil capable de générer un makefile pour un projet C/C++ pour différents compilateurs (gcc, microsoft vc++, borland etc) et différentes plateformes (Win, Linux, Mac).

Était-ce utile?

La solution

Autres suggestions que vous pourriez envisager :

  • Scons est une bibliothèque de construction multiplateforme et multi-compilateur, utilise le script Python pour les systèmes de construction.Utilisé dans une variété de grands projets et fonctionne très bien.

  • Si vous utilisez Qt, QMake est également un bon système de construction.

  • CMake est aussi assez doux.

  • Enfin, Si tout le reste échoue...

Autres conseils

As-tu essayé Générateur de Makefile automatique?

Il prend en charge les compilateurs suivants :

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 

j'ai utilisé Fichier de cuisson avant avec un certain succès.C'est assez simple et semble bien fonctionner.

CMake est le seul outil capable de générer de vrais projets Visual Studio (c'est-à-direpas les projets "Makefile" qui font appel à un outil externe), et qui recrée automatiquement les projets lorsque le fichier d'entrée de construction (CMakeLists.txt) change.

Les problèmes de performances des SCons sont bien connus et font l'objet de débats approfondis sur les listes de diffusion des SCons.

je voterais pour OMake.Il corrige toutes les plaintes que j'ai eues avec GNU make :

  • c'est un langage à part entière.
  • utilise MD5 au lieu des horodatages.
  • fournit un shell minimal qui implémente les commandes Unix les plus utiles sur toutes les plateformes :trouver, sed, awk, etc...
  • fonctionne avec les noms de chemin de style Unix ou DOS.
  • largement documenté.
  • prend en charge les constructions parallèles.
  • rapide.

La génération automatique de fichiers (M|m)ake me fait m'inquiéter de ce que vous essayez de faire ici.

Comprenez-vous ce qui se passe sous les couvertures lorsque vous tapez make ?Ou gmake ?Je demande seulement parce que si vous ne le faites pas lorsque les choses se cassent, comme par exemple lorsque de nouvelles modifications de code ne sont pas intégrées à la version, vous aurez des difficultés à essayer de comprendre ce qui s'est passé.

Pour commencer à comprendre make, puis-je vous suggérer de lire "Gérer des projets avec GNU Make" de Robert Mecklenberg.Les premiers chapitres expliquent comment fonctionne make.Faire entendre votre voix sur le fait que make est un chaînage en arrière est l'une des choses les plus importantes que vous puissiez faire.

Si vous ne le faites pas et que votre système semble fonctionner, alors vous le serez, pour reprendre le terme des Pragmatic Programmers, "programmation par hasard". (-:

BTW Excellents articles disponibles sur leur site !Et je ne suis pas impliqué avec eux.YMMV.Yada-yada...

Je seconderai également CMake.Je l'utilise depuis un bon moment sur un projet multiplateforme et j'en suis très satisfait.

Une question à considérer est la suivante : voulez-vous un créateur de « makefile » ou un système de build de remplacement ?Le problème avec les systèmes de build de remplacement est que vous n'obtenez généralement pas une bonne intégration IDE pour les plates-formes dont les utilisateurs l'attendent (Visual C++).Si vous souhaitez un créateur de makefile au lieu d'un système de build de remplacement, jetez un œil à MPC.C'est gratuit et open source.

Un ajout récent à la liste des remplacements de marque est waf.D'après mon expérience personnelle, SCONS fait plutôt bien le travail.

Je ne sais pas si cette question vous intéresse encore.Je travaille sur une projection de générateur automatique Makefile similaire appelée CodeMate, développé en utilisant Ruby.Ce n'est peut-être pas encore très mature pour les applications à grande échelle, mais je continuerai à travailler dessus pour l'améliorer.Les utilisateurs ne devraient pas avoir besoin de modifier un fichier de configuration pour créer le logiciel, ou du moins c'est censé l'être.La courbe d’apprentissage doit être minimisée.

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