"unexpected end of file" --> ???????????

"unexpected end of file" --> ??????????? - C++ - Programmation

Marsh Posté le 12-03-2004 à 08:47:34    

après compîle, j'ai 3 fatal error :

fatal error C1010: unexpected end of file while looking for precompiled header directive
 
fatal error C1010: unexpected end of file while looking for precompiled header directive
 
fatal error C1010: unexpected end of file while looking for precompiled header directive

 
enfin... ce sont les trois mêmes erreurs... que je n'arrive pas à résoudre.
 
ces sources (où le compilateur me met des erreurs) m'ont été fournis est marchent parfaitement... avec d'autre programmes !
 

Reply

Marsh Posté le 12-03-2004 à 08:47:34   

Reply

Marsh Posté le 12-03-2004 à 09:04:09    

Il doit te manquer une parenthèse, ou un #endif, enfin un truc comme ça, mais sans le code je ne sais pas dire plus ...

Reply

Marsh Posté le 12-03-2004 à 09:52:07    

le code est assez conséquent, je ne px pas me permettre de le mettre sur ce forum.
La seule chose que je peux affirmer, c'est que ces sources fonctionnes parfaitement (passent à la compile), lorsqu'il sont employers dans un autre source.
Je me demande plutot si ca ne viendrai pas d'un paramètre que j'ai oublié de validé pour la compile...
Mais les erreurs que le compilo me trouve dans les sources n'ont pas lieu d'être...

Reply

Marsh Posté le 12-03-2004 à 09:56:56    

lecoyote a écrit :

après compîle, j'ai 3 fatal error :

fatal error C1010: unexpected end of file while looking for precompiled header directive
 
fatal error C1010: unexpected end of file while looking for precompiled header directive
 
fatal error C1010: unexpected end of file while looking for precompiled header directive

 
enfin... ce sont les trois mêmes erreurs... que je n'arrive pas à résoudre.
 
ces sources (où le compilateur me met des erreurs) m'ont été fournis est marchent parfaitement... avec d'autre programmes !


 
c'est un problème du visual C. Il utilise normalement des "precompiled headers" afin de gagner en performance au niveau du préprocesseur. On peut aussi le faire avec les dernières version de gcc mais c'est mieux fait. Bref, dans les options du projet, il faut donc lui dire de ne pas utiliser ce mode et c'est réglé.

Reply

Marsh Posté le 12-03-2004 à 09:58:50    

Autant pour moi ... utilise générer automatiquement dans les options

Reply

Marsh Posté le 12-03-2004 à 11:48:03    

DocMaboul a écrit :


 
c'est un problème du visual C. Il utilise normalement des "precompiled headers" afin de gagner en performance au niveau du préprocesseur. On peut aussi le faire avec les dernières version de gcc mais c'est mieux fait. Bref, dans les options du projet, il faut donc lui dire de ne pas utiliser ce mode et c'est réglé.


 
ou faire  
#include "stdafx.h"  
 
en premiere ligne dans les includes du .c/.cpp a compiler
ce qui me parait plus intelligent

Reply

Marsh Posté le 12-03-2004 à 11:52:36    

chrisbk a écrit :


 
ou faire  
#include "stdafx.h"  
 
en premiere ligne dans les includes du .c/.cpp a compiler
ce qui me parait plus intelligent


 
Je ne pense pas, non. Mais bon, il peut le faire comme cela si ça lui chante. Mais il faut alors qu'il crée un stdafx.cpp, qu'il l'inclue dans son projet et qu'il le configure pour générer les precompiled à partir de ce fichier. Après, il va falloir qu'il édite chacun de ses sources pour ajouter l'include.
 
Si vous trouvez ça plus simple que de changer une option à trois sous, on n'a alors pas la même conception du simple.

Reply

Marsh Posté le 12-03-2004 à 11:55:21    

DocMaboul a écrit :


Je ne pense pas, non. Mais bon, il peut le faire comme cela si ça lui chante. Mais il faut alors qu'il crée un stdafx.cpp, qu'il l'inclue dans son projet et qu'il le configure pour générer les precompiled à partir de ce fichier. Après, il va falloir qu'il édite chacun de ses sources pour ajouter l'include.


 
Y'a plusieurs solution :
-Soit il a crée son projet dans PCH et la visual le ferait pas chier
-Soit il a crée son projet avec PCH et a rajouté ensuite ses fichiers sans le 'include "stdafx.h" ' et donc ca foire. Dans ce deuxieme cas, tout ce qu'il a a faire c'est de rajouter ledit include. (vu que VC a crée le reste pour lui). Le gain apporté par les PCH est suffisament important pour que l'on puisse prendre la peine d'apprendre a s'en servir.
 
 
 

DocMaboul a écrit :


Si vous trouvez ça plus simple que de changer une option à trois sous, on n'a alors pas la même conception du simple.


 
Vous etes le seul a avoir lu "simple" dans mon precedent post. Puis je vous conseiller un opticien ?

Reply

Marsh Posté le 12-03-2004 à 12:00:22    

chrisbk a écrit :


 
Y'a plusieurs solution :
-Soit il a crée son projet dans PCH et la visual le ferait pas chier
-Soit il a crée son projet avec PCH et a rajouté ensuite ses fichiers sans le 'include "stdafx.h" ' et donc ca foire. Dans ce deuxieme cas, tout ce qu'il a a faire c'est de rajouter ledit include. (vu que VC a crée le reste pour lui). Le gain apporté par les PCH est suffisament important pour que l'on puisse prendre la peine d'apprendre a s'en servir.


 
He bien le gain apporté par les bugs liés au pch du visual jusqu'en version 6 est tellement grand que j'ai appris à les virer systématiquement dans mes projets :D
 

Citation :

Vous etes le seul a avoir lu "simple" dans mon precedent post. Puis je vous conseiller un opticien ?


 
Je n'ai pas lu ça dans votre message. Mais je note que vous êtes susceptible.

Reply

Marsh Posté le 12-03-2004 à 12:02:24    

DocMaboul a écrit :


 
He bien le gain apporté par les bugs liés au pch du visual jusqu'en version 6 est tellement grand que j'ai appris à les virer systématiquement dans mes projets :D


 
j'ai jamais eu de pépin avec les PCH du 6 ? Enfin j'ai surtout commencer a utiliser ca intensivement dans le 2002 et j'ai jamais eu de soucis majeur de ce coté la. Parfois des erreurs de compilations inexplicable qui se resolvait avec un rebuild all, mais c'est franchement plus l'exception que la regle.  

Reply

Marsh Posté le 12-03-2004 à 12:02:24   

Reply

Marsh Posté le 12-03-2004 à 12:08:51    

chrisbk a écrit :


 
j'ai jamais eu de pépin avec les PCH du 6 ? Enfin j'ai surtout commencer a utiliser ca intensivement dans le 2002 et j'ai jamais eu de soucis majeur de ce coté la. Parfois des erreurs de compilations inexplicable qui se resolvait avec un rebuild all, mais c'est franchement plus l'exception que la regle.  
 


 
Les erreurs de compilation inexplicables sont dûes à des bugs dans la gestion des dépendances. En clair, il arrive que le changement d'un header inclu dans le pch ne déclenche pas la recompilation de celui-ci ansi que de tous les fichiers liés. Ce n'est généralement pas trop grave tant qu'on ne fait qu'ajouter des fonctions à une classe (par exemple) parce que si vous utilisez la fonction ailleurs dans votre code, le compilo vous crachera une erreur à la figure comme quoi la méthode n'existe pas pour lui. Mais si à la place d'ajouter une méthode, vous changez le code d'une fonction inline, l'histoire ne sera pas du tout la même. Il y a d'autres petits détails bien chiants mais bon, après, c'est plus une histoire de goût.

Reply

Marsh Posté le 12-03-2004 à 12:10:15    

DocMaboul a écrit :


 
Les erreurs de compilation inexplicables sont dûes à des bugs dans la gestion des dépendances.


 
 
vivi, d'ou le rebuild all

Reply

Marsh Posté le 12-03-2004 à 12:17:03    

chrisbk a écrit :


 
 
vivi, d'ou le rebuild all
 


 
Ca aussi, c'est le truc que j'adore dans les projets utilisant des pch bien trop souvent mal faits. Pour se faire une dll, le mec fait un bon gros header avec tous ses includes dedans (ben oui, c'est "vachement" over tip top pratique) et à chaque fois qu'on change un poil de cul quelque part, c'est parti pour la recompilation du projet en entier. Il y en a qui perdent des heures à regarder leur machine faire des compilations comme ça...

Reply

Marsh Posté le 12-03-2004 à 12:19:02    

DocMaboul a écrit :


 
Ca aussi, c'est le truc que j'adore dans les projets utilisant des pch bien trop souvent mal faits. Pour se faire une dll, le mec fait un bon gros header avec tous ses includes dedans (ben oui, c'est "vachement" over tip top pratique) et à chaque fois qu'on change un poil de cul quelque part, c'est parti pour la recompilation du projet en entier. Il y en a qui perdent des heures à regarder leur machine faire des compilations comme ça...


 
et pourtant il suffit de lire le code généré :D
 

Code :
  1. // stdafx.h : include file for standard system include files,
  2. // or project specific include files that are used frequently, but
  3. // are changed infrequently
  4. //


 
(fodrait ptet lui dire un jour de la debugger un brin, la coloration)


Message édité par chrisbk le 12-03-2004 à 12:19:47
Reply

Marsh Posté le 12-03-2004 à 12:26:33    

chrisbk a écrit :


 
et pourtant il suffit de lire le code généré :D
 

Code :
  1. // stdafx.h : include file for standard system include files,
  2. // or project specific include files that are used frequently, but
  3. // are changed infrequently
  4. //


 
(fodrait ptet lui dire un jour de la debugger un brin, la coloration)
 


 
Mouais. C'est sûr que si le mec ne colle que des afxproutprout dedans, ça peut encore être acceptable. Le reste du temps, il vaut mieux s'en passer parce qu'on fait ça comme un sagouin et qu'on a alors droit à des erreurs "inexplicables" et des rebuild all à tire-larigot.

Reply

Marsh Posté le 12-03-2004 à 12:28:40    

DocMaboul a écrit :


 
Mouais. C'est sûr que si le mec ne colle que des afxproutprout dedans, ça peut encore être acceptable. Le reste du temps, il vaut mieux s'en passer parce qu'on fait ça comme un sagouin et qu'on a alors droit à des erreurs "inexplicables" et des rebuild all à tire-larigot.


 
non, je suis pas d'accord, si tu suis les regles etablies dans le bout de commentaire quoté, tu n'auras que tres peu de pb, et tu sacage tes temps de compilation.

Reply

Marsh Posté le 12-03-2004 à 12:38:16    

chrisbk a écrit :


 
non, je suis pas d'accord, si tu suis les regles etablies dans le bout de commentaire quoté, tu n'auras que tres peu de pb, et tu sacage tes temps de compilation.
 


 
Mouais... je ne suis même pas sûr qu'on y gagne quand on a peu de fichiers à recompiler (avec des dépendences bien foutues) comme c'est souvent le cas quand on est en cours de dev. Parce qu'il faut bien dire que la taille du pch grimpe vite à plus de 10 méga-patates. Mais bon, à mon sens, c'est plus une affaire de goût qu'autre chose tout ça.

Reply

Marsh Posté le 12-03-2004 à 14:00:30    

les 10megapatate, on s'en fout :D

Reply

Marsh Posté le 12-03-2004 à 14:38:45    

chrisbk a écrit :

les 10megapatate, on s'en fout :D


 
Ben oui, puisque je ne suis pas encore assez sénile pour utiliser les precompiled proutprout de krosoft. Ah oui, au fait, un bon compilateur C/C++ pour windows, c'est CodeWarrior.

Reply

Marsh Posté le 12-03-2004 à 14:40:18    

DocMaboul a écrit :


 
Ben oui, puisque je ne suis pas encore assez sénile pour utiliser les precompiled proutprout de krosoft. Ah oui, au fait, un bon compilateur C/C++ pour windows, c'est CodeWarrior.


 
Merci de ton intervention

Reply

Marsh Posté le 12-03-2004 à 14:41:51    

chrisbk a écrit :


 
Merci de ton intervention


 
Tiens, je suis sûr que vous ne savez que l'assembleur généré par le visual est à chier. Mais bon, c'est normal. Vous êtes jeune...

Reply

Marsh Posté le 12-03-2004 à 14:44:07    

DocMaboul a écrit :


 
Tiens, je suis sûr que vous ne savez que l'assembleur généré par le visual est à chier. Mais bon, c'est normal. Vous êtes jeune...


 
quelle version de visual ? quel cas ?
Savez vous qu'il existe un mode "release" ?

Reply

Marsh Posté le 12-03-2004 à 14:46:51    

chrisbk a écrit :


 
quelle version de visual ? quel cas ?
Savez vous qu'il existe un mode "release" ?
 


 
Ah ben non, c'est quoi donc ça, "release", un god ceinture?

Reply

Marsh Posté le 12-03-2004 à 14:50:08    

DocMaboul a écrit :


 
Ah ben non, c'est quoi donc ça, "release", un god ceinture?


[:ddr555]
 
bon plus serieusement, t'as du cas a montrer de code a chier ?

Reply

Marsh Posté le 12-03-2004 à 14:53:48    

chrisbk a écrit :


[:ddr555]
 
bon plus serieusement, t'as du cas a montrer de code a chier ?  


 
Encore plus simple, allez-donc voir le memcpy en débuggant une release. Le summum de l'inefficience...

Reply

Marsh Posté le 12-03-2004 à 16:00:29    

VC 6 n'est pas top ... .NET est mieux tout de même, perso je trouve le compilo Intel bien ;)

Reply

Marsh Posté le 12-03-2004 à 16:02:16    

DocMaboul a écrit :


 
Encore plus simple, allez-donc voir le memcpy en débuggant une release. Le summum de l'inefficience...


mauvais exemple, memcpy est ecrite en asm, ca n'a donc rien a voir avec le compilo

Reply

Marsh Posté le 12-03-2004 à 16:05:01    

chrisbk a écrit :


mauvais exemple, memcpy est ecrite en asm, ca n'a donc rien a voir avec le compilo


 
Si justement. C'est de 'bon' augure pour la suite.

Reply

Marsh Posté le 12-03-2004 à 16:05:49    

DocMaboul a écrit :


 
Si justement. C'est de 'bon' augure pour la suite.


 
heuh...
non.

Reply

Marsh Posté le 12-03-2004 à 16:07:46    

chrisbk a écrit :


 
heuh...
non.


 
Ahhh ces jeunes, ils ne comprennent rien à rien... [:al zheimer]

Reply

Marsh Posté le 12-03-2004 à 16:09:06    

DocMaboul a écrit :


 
Ahhh ces jeunes, ils ne comprennent rien à rien... [:al zheimer]


 
la génération de code me semble etre autre chose que du code asm ecrit a la main.

Reply

Marsh Posté le 12-03-2004 à 16:11:11    

chrisbk a écrit :


 
la génération de code me semble etre autre chose que du code asm ecrit a la main.  


 
Et qu'est-ce qui est le plus facile à optimiser, le code écrit à la main ou le code généré?

Reply

Marsh Posté le 12-03-2004 à 16:11:39    

DocMaboul a écrit :


 
Et qu'est-ce qui est le plus facile à optimiser, le code écrit à la main ou le code généré?


 
c'est un peu pas la meme chose quand meme

Reply

Marsh Posté le 12-03-2004 à 16:12:40    

chrisbk a écrit :


 
c'est un peu pas la meme chose quand meme
 


 
Taratata jeune homme. On répond à la question.

Reply

Marsh Posté le 12-03-2004 à 16:13:42    

DocMaboul a écrit :


 
Taratata jeune homme. On répond à la question.


 
code ecrit a la main.
 
maintenant reponds a la mienne : ecrire de l'asm a la main est il comparable a ecrire un generateur de code ? comment ecrirait tu la memcpy ?

Reply

Marsh Posté le 13-03-2004 à 09:49:06    

chrisbk a écrit :


ecrire de l'asm a la main est il comparable a ecrire un generateur de code ?


 
Sur certains points, oui. Sur d'autres non.
 

Citation :

comment ecrirait tu la memcpy ?


 
Il faut détecter en début de programme le processeur sur lequel le bousin tourne.
Ensuite il faut initialiser un pointeur sur fonction avec le memcpy le plus performant selon le processeur
C'est-à-dire utilisant les jeux d'instructions qui n'ont pas été faits pour les chiens (SSE, MMX, 3DNow & cie)
Ensuite, on vire du memcpy leur test à la noix sur les zones mémoire overlapped. D'une, ce n'est absolument pas portable et de deux, à part si on bosse pour krosoft, il est rare qu'un programmeur fasse ce genre de copies. En clair, ce test ne fait au mieux que gâcher des cycles et, au pire, que pourrir la portabilité.
 
Sur ce, bon week-end.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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