Question C à deux balles
15 sujets de 1 à 15 (sur un total de 17)
- 1
- 2
-
Juste comme ça en passant :
Prenons un Hello Word de base :
/*
** Hello World
** © 2001 Braindead coders society
*/
#include
#include
int main()
{
puts( « Salut les gens. » );
return RETURN_OK;
}
Sous cli j’obtiens :
– avec vc -o hello hello.c -> 4 Ko
– avec gcc -o hella hello.c -> 17 Ko
Comment expliquer la différence de taille ?
Est-ce l’ascendance unixienne de gcc qui amène le compilo à ajouter des éléments pour rendre le code compatible amiga ?
J’ai lu quelque part (sur gurumed sûrement) qu’on pouvait utiliser l’option -noixemul à l’occasion.
Il faudrait peut-être penser à compiler avec les bonnes options d’optimisation ET à striper l’executable afin de virer le plus de symboles possible.
Ensuite, les codes de startup des différents compilateurs peuvent TRÈS largement différer et gérer plus ou moins de choses « automagiquement » quitte à gonfler la taille de l’exe au final.
Bref, à moins de savoir très exactement ce que l’on compare, tout cela n’a strictement aucun intérêt. À mon humble avis.
err….
les programmeux sont des gens bizarres tout de même.
En tout cas merci pour vos non-réponses, elles seront de toute façon plus utiles qu’une réponse directe
Stan : à propos du return, tu dis ça paske ça évite de faire un hit à la fin de la fonction (dans le cas du hello word) ?
c’est vraiment à deux balle cette question…
réponse à 1 balle (comme ça je récupe 1 balle pour le café):
Elimine les commentaires au début, ça va carrément réduire ton code…. source!
plus sérieusement, fait ceci:
gcc -noixemul -O -o hello hello.c
strip hello
(et encore on peut virer une section inutile avec strip, mais j’ai plus le truc en tête)
Boarf, grosso modo tout le monde m’a expliqué COMMENT réagir au problème, mais jusqu’au réçent post de Stan y avait pas réellement d’explication au phénomène.
Mais je disais pas ça pour froisser les gens hein
sinon j’ai essayé gcc -noixemul -O -o hello hello.c
et l’exécutable est encore plus gros (il est passé de 17Ko à 21 Ko)!
Et en faisant « strip hello » j’obtiens le message suivant :
Warning: Output file cannot represent architecture m68k:68000
Et j’ai rien modifié à l’install par défaut qui est, je pense, orientée 68K.
Etrange…
/me a l’impression de revivre ses premiers cours de Turbo Pascal 5 au lyçée…
ashitaka le 28/5/2004 14:14:36:
Et en faisant « strip hello » j’obtiens le message suivant :
Warning: Output file cannot represent architecture m68k:68000
Et j’ai rien modifié à l’install par défaut qui est, je pense, orientée 68K.
Etrange…
Je ne vois qu’un pb d’install où un vieux gcc vient te perturber.
Pour être sur utilise les commandes:
ppc-morphos-xxx
où xxx correspond aux commandes usuelles: gcc, as, ar, nm, strip, …
15 sujets de 1 à 15 (sur un total de 17)
- 1
- 2
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Question C à deux balles