Impossible de créer l'en-tête pré-compilé : code dans l'en-tête

Impossible de créer l'en-tête pré-compilé : code dans l'en-tête - C++ - Programmation

Marsh Posté le 11-06-2004 à 04:00:43    

Salut j'obtiens le message d'eerur du titre du topic avec la declaration de classe suivante, j'ai beau regarder l'aide ca mavance pas plus
 

Code :
  1. class location
  2. {
  3. private:
  4.  string pays, agence_dep, date_dep, heure_dep, agence_arr, date_arr, heure_arr;
  5.  int kmdebut;
  6. public:
  7.  location(string _pays, string _agence_dep, string _date_dep, string _heure_dep, string _agence_arr, string _date_arr, string _heure_arr, int _kmdebut);
  8. };
  9. location::location(string _pays, string _agence_dep, string _date_dep, string _heure_dep, string _agence_arr, string _date_arr, string _heure_arr, int _kmdebut)
  10. {
  11. pays=_pays;
  12. agence_dep=_agence_dep;
  13. date_dep=_date_dep;
  14. heure_dep=_heure_dep;
  15. agence_arr=_agence_arr;
  16. date_arr=_date_arr;
  17. heure_arr=_heure_arr;
  18. kmdebut=_kmdebut;
  19.         cout<<endl<<endl<<"la location est cree"<<endl<<endl;
  20. }


 
si vous avez une idée nhésitez pas  merci
 
si je trouve je vous tiens au courant....
 
ps je compile sous c++ builder 5 sous win
 
EDIT je viens de deplacer la classe location est la ligne indiquée pour le probleme na pas bougée elle
 
donc ca vient dautres part  
 
Une idée?


Message édité par pinpoy le 11-06-2004 à 04:54:33
Reply

Marsh Posté le 11-06-2004 à 04:00:43   

Reply

Marsh Posté le 11-06-2004 à 16:42:44    

je viens de penser a un truc  
 
en fait j'ai la declaration de mes classes et la définition des fonctions dans le meme fichicie, le message derreur vient peut-etre de la
 
quoiquil en soit ca ne gene pas la compilation du programme


Message édité par pinpoy le 11-06-2004 à 21:25:46
Reply

Marsh Posté le 11-06-2004 à 19:05:35    

tu dois avoir l'option "utiliser l'entête pré-compilé" ou qqchose comme ça dans le projet, met à auto ou enlève.
J'ai ce pb là aussi avec visual, et j'avoue ne pas trop savoir pourquoi le truc ne pré-compile pas la première fois.

Reply

Marsh Posté le 11-06-2004 à 21:25:31    

cetait bien ca
 
dans les option du projet a entete précompilés j'ai mis "aucun" à la place de "cacher les entetes précompilés"
 
je comprends pas vraiment ce que ca change mais bon plus de message derreur, si quelqu'n a une explication je suis preneur
 
Merci  :o

Reply

Marsh Posté le 11-06-2004 à 21:41:39    

Moi non plus ... je suppose que le truc ne sait pa compiler une première fois si l'option n'est pas là, mais je suis tout ouie également ;)

Reply

Marsh Posté le 11-06-2004 à 21:57:51    

le precompiled header ca puduku :o

Reply

Marsh Posté le 11-06-2004 à 21:58:25    

mais ça marche très bien d'ailleurs :o

Reply

Marsh Posté le 11-06-2004 à 21:59:59    

Taz a écrit :

mais ça marche très bien d'ailleurs :o


 
 [:joel f] j'y crois a mort  [:spyer]

Reply

Marsh Posté le 11-06-2004 à 22:04:11    

Joel F a écrit :

[:joel f] j'y crois a mort  [:spyer]


 
C'est quoi ton pb avec les precompiled headers ? :)

Reply

Marsh Posté le 11-06-2004 à 22:05:05    

ben j'ai testé qu'en C et ça tournait pas mal

Reply

Marsh Posté le 11-06-2004 à 22:05:05   

Reply

Marsh Posté le 11-06-2004 à 22:07:26    

sinon pour que le code ici suivant soit correcte, il ne faut pas définir 36 fois le constructeur mais l'inliner : le mieux est de le définir dans le bloc de déclaration de la classe, sinon le marquer inline etc

Reply

Marsh Posté le 11-06-2004 à 22:08:40    

Je ne connais que la version VC++ 6.0, et ça accélère considérablement les compiles (5000 fichier 45mn en ligne de commande tout de même sur un P4@2,4GHz, et au moins 2x plus sous Visual). Seul pb, c'est que parfois sous Visual, l'environnement se ramasse et ne détecte pas les changements dans les .h, ce gros naze.


Message édité par el muchacho le 11-06-2004 à 22:09:08
Reply

Marsh Posté le 11-06-2004 à 22:11:30    

Joel > les pch ça à l'air de bien marcher en C++ aussi avec gcc
 
« 5000 fichier 45mn »
 
ce qui ne veut strictement rien dire : en étant vicieux, tu peux faire une fichier de 500 lignes avec des template qui va mettre à lui seul 15min à compiler

Reply

Marsh Posté le 11-06-2004 à 22:15:30    

Taz a écrit :

Joel > les pch ça à l'air de bien marcher en C++ aussi avec gcc
 
« 5000 fichier 45mn »
 
ce qui ne veut strictement rien dire : en étant vicieux, tu peux faire une fichier de 500 lignes avec des template qui va mettre à lui seul 15min à compiler


 
Oui, mais il y a des règles de codage, et parmis celles-ci, on évite d'utiliser les templates de manière générale (en fait, c'est interdit, pour des raisons de clarté de code, et d'explosion de la taille des objets générés, mais on les utilise quand même, parcimonieusement, ne serait-ce que pour les containers de la STL).
Enfin, tout ce que ça veut dire, c'est qu'en évitant de reparser n fois les headers, on gagne énormément.


Message édité par el muchacho le 11-06-2004 à 22:16:09
Reply

Marsh Posté le 11-06-2004 à 22:18:14    

Taz a écrit :

Joel > les pch ça à l'air de bien marcher en C++ aussi avec gcc
 
« 5000 fichier 45mn »
 
ce qui ne veut strictement rien dire : en étant vicieux, tu peux faire une fichier de 500 lignes avec des template qui va mettre à lui seul 15min à compiler


 
ouais, j'ai jamais creusé , ca me paraissait assez fumeux.
 
Quant au template, mon record eprso est 80 lignes de template compilées en 78mn

Reply

Marsh Posté le 11-06-2004 à 22:19:03    

là n'est pas la question.
 
cela dit vaut mieux éviter les template, tant de gens croient savoir s'en servir, au final c'est un massacre
 
 
pch ou pas, moi je me planque derrière mon ccache et c'est très bien

Reply

Marsh Posté le 11-06-2004 à 22:23:11    

Taz a écrit :

là n'est pas la question.
 
cela dit vaut mieux éviter les template, tant de gens croient savoir s'en servir, au final c'est un massacre.


 
 :jap:  
Dans un gros projet qui dure des années, il n'y a pas que des génies, il y a forcément quelques boulets. Donc on serre la vis pour limiter l'étendue des dégats.

Reply

Marsh Posté le 11-06-2004 à 22:47:40    

Taz a écrit :

là n'est pas la question.
 
cela dit vaut mieux éviter les template, tant de gens croient savoir s'en servir, au final c'est un massacre
 
 
pch ou pas, moi je me planque derrière mon ccache et c'est très bien


 
ben des fois on est bien obligé. Si je templatisé pas comme un porc je perdrais 60% à 80% d'eficacité.
 
bon, je vais regarder la doc pour le PCH de gcc

Reply

Marsh Posté le 11-06-2004 à 22:54:12    

j'ai pas dit de tout templatisé :o
 
et niveau explosion du volume de code, j'ai déjà eu de tès bon résultat avec une implémentation en 2 temps, void* puis T
 
 
toutes façons, avec des templates, on ne ferait rien de plus rien de moins qu'à l'habitude : on le fait juste plus vite alors les résultat sont les mêmes

Reply

Marsh Posté le 11-06-2004 à 22:56:04    

Taz a écrit :


j'ai pas dit de tout templatisé :o


 
moi non plus :o
 

Taz a écrit :


et niveau explosion du volume de code, j'ai déjà eu de tès bon résultat avec une implémentation en 2 temps, void* puis T


c'est à dire ?
 

Taz a écrit :


toutes façons, avec des templates, on ne ferait rien de plus rien de moins qu'à l'habitude : on le fait juste plus vite alors les résultat sont les mêmes


 
o_O

Reply

Marsh Posté le 11-06-2004 à 22:56:53    

mais tu sais bien, faire une coeur générique avec des void*, la couche template ne s'occupant que du typage et des new/delete

Reply

Marsh Posté le 11-06-2004 à 22:59:43    

Taz a écrit :

mais tu sais bien, faire une coeur générique avec des void*, la couche template ne s'occupant que du typage et des new/delete


 
 :sweat: il se fait tard ... OK c'est bon ^^
 
(/me se cache, il en a un gros comme ca dans le code ouvert sous ces yeux )

Reply

Marsh Posté le 12-06-2004 à 20:24:11    

alros les pch ?

Reply

Marsh Posté le 12-06-2004 à 21:29:14    

T'es dûr ... pch -> trashcan !! ;)

Reply

Marsh Posté le 13-06-2004 à 09:39:29    

Taz a écrit :

alros les pch ?


 


E.V.E. Compilation Time (no precompiled header) : 1073.2s
E.V.E. Compilation Time (w/ precompiled header) :  643.8s


 
hmmm je veut creuser un poil plus ...

Reply

Marsh Posté le 13-06-2004 à 09:42:13    

t'as du t'amuser à modifier le Makefile :o


Message édité par Taz le 13-06-2004 à 09:46:17
Reply

Marsh Posté le 13-06-2004 à 10:21:08    

faudrait voir à tester gcc-3.5 avec un peu de chances, il fait tout tout seul (vu que les pch sont juste une démo technique dans 3.4)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed