Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1329 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  accélérer la compilation (pré-compilation ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

accélérer la compilation (pré-compilation ?)

n°921937
wxuserbres​t
Posté le 13-12-2004 à 15:35:55  profilanswer
 

Bonjour,
y a t il une méthode pour faire en sorte que les fichiers header (les .h ou .hpp) soient pré-compilés ? cela permettrait de gagner énormément de temps. Avec gcc ou ses versions sous windows si possible.
Merci

mood
Publicité
Posté le 13-12-2004 à 15:35:55  profilanswer
 

n°921941
schnapsman​n
Zaford Beeblefect
Posté le 13-12-2004 à 15:38:20  profilanswer
 

oui, man gcc (>= 3.2) & msdn
sinon ccache sous linux
et distcc aussi


Message édité par schnapsmann le 13-12-2004 à 15:40:20
n°921942
Taz
bisounours-codeur
Posté le 13-12-2004 à 15:38:34  profilanswer
 

Citation :

% cat foo.h
#define FOO 10
 
% cat foo.c
#include "foo.h"
#include <stdio.h>  
int main() { printf("%d\n", FOO); }
 
% ls foo.*
foo.c foo.h  
 
% gcc -x c-header -c foo.h  
 
% ls foo.*
foo.c foo.h foo.gch  
 
% gcc -o foo foo.c  
 
% ./foo
10  
 
% rm foo.h
 
% gcc -o foo foo.c
 
% ./foo
10

n°921945
Taz
bisounours-codeur
Posté le 13-12-2004 à 15:39:08  profilanswer
 

schnapsmann a écrit :

oui, man gcc & msdn
sinon ccache sous linux
et distcc aussi

faut aussi voir à réduire les dépendances de compilations.

n°922467
wxuserbres​t
Posté le 14-12-2004 à 08:13:08  profilanswer
 

j ai fait un test avec ccache sous linux et je passe d'une 1ere compilation de plus de 40s à 7s donc ça accélère le truc, mais il y a la première compilation à effectuer.
Y a t il un compilateur "à la volée" qui peut compiler au fur et à mesure que l'on tape du code ? ça serait pratique pour détecter de suite les erreurs et ainsi gagner énormément de temps...

n°922474
schnapsman​n
Zaford Beeblefect
Posté le 14-12-2004 à 08:47:43  profilanswer
 

il n'y a pas de quoi merci [:itm]
à la volée > certains ide détectent de possibles erreurs de syntaxe et ou de parenthèsage, mais en aucun cas il ne s'agit de compilation à la volée


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°922478
Lam's
Profil: bas.
Posté le 14-12-2004 à 08:54:22  profilanswer
 

schnapsmann a écrit :

il n'y a pas de quoi merci [:itm]
à la volée > certains ide détectent de possibles erreurs de syntaxe et ou de parenthèsage, mais en aucun cas il ne s'agit de compilation à la volée


... en C++. Car les 2 gros problèmes, c'est le préprocesseur et le code template, où une simple modification d'une ligne peut changer le sens de millions de milliards de lignes.  
 
Il me semble qu'en Java, ça existe (en tout cas, je me souviens de Visual Age for Java 1.1 qui compilait automatiquement la méthode que l'on venait juste d'éditer, mais ça remonte à il y a 5 ans au moins).
 
Par contre, avec wxWidgets, il faut:
1. éviter autant que possible de mélanger la couche présentation avec le reste, car ça plombe vite un projet.
2. éviter d'inclure wxAll.h, et plutôt utiliser les fichiers spécifiques, c'est toujours ça de gagner
 

n°922550
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 10:27:44  profilanswer
 

VTK au commencement tout était dans un unique fichier, puis ils ont tout découpé car trop lent à compiler. Là, en étudiant de près les header inclus etc... et en en virant des indésirables j'ai réduit le temps de compilation par 2. En utilisant les pch, sur certains projet ca a été 10 fois plus rapides à compiler, sinon sur VTK toujours, en faisant une grosse bidouille grossière pour pas fouttre en l'air le système des includes (inconvénient des pch) ben je suis arrivé à réduire par 3 (2000 fichiers en tout).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°922556
Deadog
Dain Bramaged
Posté le 14-12-2004 à 10:41:21  profilanswer
 

scons permet d'éviter de recompiler des fichiers non modifiés

n°922563
Taz
bisounours-codeur
Posté le 14-12-2004 à 10:51:19  profilanswer
 

ouai
scons + ccache

mood
Publicité
Posté le 14-12-2004 à 10:51:19  profilanswer
 

n°922577
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 11:23:09  profilanswer
 

scons sait faire ça ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°922580
Taz
bisounours-codeur
Posté le 14-12-2004 à 11:27:01  profilanswer
 

quoi ?

n°922581
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 11:28:39  profilanswer
 

Tu me déçois là.

Citation :

éviter de recompiler des fichiers non modifiés


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°922601
Taz
bisounours-codeur
Posté le 14-12-2004 à 11:50:31  profilanswer
 

ben oui, scons se base sur la signature md5 des fichiers et non leur mtime.

n°922649
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 13:04:52  profilanswer
 

signer un fichier avec md5 c'est plus rapide que de tester son mtime ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°922670
Taz
bisounours-codeur
Posté le 14-12-2004 à 13:28:53  profilanswer
 

non, mais c'est plus fiable. Et comme les fichiers sont petits, c'est transparent

n°922743
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 14:14:31  profilanswer
 

Ouai bon j'ai fait un bide quoi. C'est juste que c'est la fonctionnalité de base d'un makefile de ne pas recompiler pour rien un fichier.
http://www.yelims.com/Forum/Forum10.gif


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°922774
Taz
bisounours-codeur
Posté le 14-12-2004 à 14:27:01  profilanswer
 

ben il te faut une heuristique pour déterminer si un fichier à changer ou pas, sinon, il faut conserver la copie de l'original.

n°922827
HelloWorld
Salut tout le monde!
Posté le 14-12-2004 à 14:57:15  profilanswer
 

Ah ok je pige mieux. Si la date a changé, alors, il fait une vérification md5 en + au cas où la date a changé mais pas le contenu (sauvegarde accidentelle, ...).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  accélérer la compilation (pré-compilation ?)

 

Sujets relatifs
erreur compilation gcc parse error at the end of input[GTK & C++] compilation de classe avec erreur
compilation d'une couche Ethernet modifiée sur linux[jsp]problème à la compilation : class file contains wrong class
[DevC++] problème de compilation avec des templates[GNU] options de compilation
Compilation php?Comment voir toutes les étapes de compilation ?
Erreur compilation (besoin d'aide)[gcc / g++]accélerer la compilation
Plus de sujets relatifs à : accélérer la compilation (pré-compilation ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR