Question De bons outils de construction pour un projet C ++, qui peuvent remplacer make?


Je me demande s'il existe un outil sympa et propre pour remplacer les Autotools ou Make de GNU pour construire un projet C ++ très volumineux, qui est tellement compliqué à utiliser.

Il est simple de générer tous les fichiers requis par Autotools si le projet est petit, mais si le code source est divisé en plusieurs répertoires, avec plusieurs bibliothèques tierces et de nombreuses dépendances, vous tomberez dans l’enfer des Autotools.

merci pour toutes les recommandations


22
2017-09-10 16:54


origine


Réponses:


le Moteur JavaScript Google V8 est écrit en C ++ et utilise SCons, alors je suppose que c'est un vote pour cela.


18
2017-09-10 17:14



CMake? (génère des makefiles, donc techniquement pas un remplacement en tant que tel).

J'ai aussi vu "SCons"Pop up dans quelques endroits récemment. Je n'ai rien créé avec lui cependant.


18
2017-09-10 17:00



Jeter un coup d'œil à waf.

Je pense que vous pouvez le considérer comme un remplacement complet pour make et autotools. Il est basé sur python. Une chose que j'aime chez Waf, c'est que le script waf lui-même est ~ 100ko autonome que vous placez dans le répertoire racine de votre projet. Ceci est en contraste avec faire ou rake et amis, où le système de construction doit être installé en premier. Vous devez toutefois avoir installé python> = 2.3.

~$ ./waf configure && ./waf && ./waf install

L'équivalent de Waf à Makefiles est le fichier wscript. C'est un script python que waf lit, et il définit au moins 3 fonctions: set_options(), configure(conf) et build(bld). Vous pouvez deviner ce que chacun d'eux fait.

Pour démarrer, je recommande de regarder les fichiers demos / cpp / * dans la distribution source. Jetez également un oeil à la doc /waf.pdf fichier; c'est un document de 12 pages qui vous permettra de démarrer rapidement.


15
2017-09-11 00:01



Pour comparer la vitesse de divers outils de construction C ++, vous pouvez consulter ce test: http://retropaganda.info/~bohan/work/sf/psycle/branches/bohan/wonderbuild/benchmarks/time.xml


11
2018-01-12 00:08



Nous utilisons Jam pour un projet C ++ complexe - un avantage est qu’il s’agit d’une plate-forme croisée. Plutôt que de me débarrasser des avantages, jetez un coup d’œil à ce lien: http://www.perforce.com/jam/jam.html


6
2017-09-10 17:20



Noel Llopis a écrit quelques articles comparant les systèmes de construction. La première partie de "La quête du système de construction parfait" est à http://gamesfromwithin.com/the-quest-for-the-perfect-build-system. La partie 2 suit sur le même site. Une nouvelle tentative de Scons est rapportée à http://gamesfromwithin.com/?p=104.

Conclusions: SCons est trop lent ... Jam est le gagnant.


5
2017-10-07 21:57



Cook est un autre outil qui peut être utilisé pour remplacer make. J'ai vu plusieurs grandes entreprises l'utiliser. Donc, l'entreprise est prête même si le site Web semble plutôt daté.

http://miller.emu.id.au/pmiller/software/cook/


2
2017-09-10 17:02



J'utilise SCons sur un grand projet c ++ (sous Linux et Windows), et ça marche vraiment bien.

scons all -j8  (qui compile des fichiers objets en parallèle) est très cool!


2
2018-02-09 19:37