petit sondage : options de compilation avec gcc

petit sondage : options de compilation avec gcc - C - Programmation

Marsh Posté le 13-01-2006 à 16:47:38    

Bonjour,
Je compile avec gcc -Wall -ansi ... C'est ce qu'il me semblait le plus standard ... J'ai pu voir sur d'autres topics que certains utilisent d'autres options y a t'il donc mieux que -Wall -ansi ??
(Je parle bien sûr d'options générales (pas de -lm pour biblio math ou de -g pour debug), pour compiler normalement un programme sous linux ...)

Reply

Marsh Posté le 13-01-2006 à 16:47:38   

Reply

Marsh Posté le 13-01-2006 à 16:49:28    

les options -O pour optimiser peut-être ?

Reply

Marsh Posté le 13-01-2006 à 16:51:09    

N'y a t'il pas un contre coût avec les options d'optimisation ? (genre instabilité du binaire, ou temps de compilation plus long ...)

Reply

Marsh Posté le 13-01-2006 à 16:57:32    

La taille du binaire oui, des instabilités certainement pas.
 
(Mais pour être honnête, c'est pas avec mes progs que je vois la différence, ni même avec ma gentoo)

Reply

Marsh Posté le 13-01-2006 à 17:05:06    

OK à voir ... rien d'autre ? (je sais y a un man, mais il fait 9000 lignes...)

Reply

Marsh Posté le 13-01-2006 à 17:14:06    

Quelle que soit la cible de mon make, il y a les options :
-W -Wall -ansi -pedantic
(j'enlève -ansi si j'utilise des fonctions POSIX, forcément)
 
Après, suivant les cibles, j'ajoute -g, -O2 et/ou -pg, selon que je souhaite debugger, optimiser et/ou utiliser gprof pour faire une analyse de mon programme.


Message édité par Elmoricq le 13-01-2006 à 17:14:15
Reply

Marsh Posté le 13-01-2006 à 17:15:07    

moi j'utilise plûtot les variantes -std=c89/c99/gnu89/gnu99

Reply

Marsh Posté le 13-01-2006 à 17:18:27    

Pas disponible sur mon vieux gcc 2.95 (qu'on n'utilise plus au profit du cc de Sun, d'ailleurs), ça apparait à partir de quelle version ?

Reply

Marsh Posté le 13-01-2006 à 18:58:24    

julien_54 a écrit :

Je compile avec gcc -Wall -ansi ... C'est ce qu'il me semblait le plus standard ... J'ai pu voir sur d'autres topics que certains utilisent d'autres options y a t'il donc mieux que -Wall -ansi ??


Moi, je compile comme ça (gcc 3.3):  


-O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
-Werror-implicit-function-declaration -Wmain -Wparentheses
-Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
-Wuninitialized -Wunknown-pragmas  -Wfloat-equal -Wundef
-Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
-Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
-Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long


et, suite à une discussion ailleurs, je viens d'ajouter ça :  

-Wunreachable-code


Message édité par Emmanuel Delahaye le 13-01-2006 à 19:08:15

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 13-01-2006 à 20:03:08    

Pourquoi ne pas utiliser -Wall, au lieu de tout détailler ? :??:

Message cité 1 fois
Message édité par Elmoricq le 13-01-2006 à 20:03:19
Reply

Marsh Posté le 13-01-2006 à 20:03:08   

Reply

Marsh Posté le 13-01-2006 à 21:57:20    

Elmoricq a écrit :

Pourquoi ne pas utiliser -Wall, au lieu de tout détailler ? :??:


Parce que par rapport à -Wall -W[extra], il y a des choses en plus en en moins. C'est un reglage qui m'a pris pas mal de temps...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 13-01-2006 à 23:28:46    

Reply

Marsh Posté le 14-01-2006 à 00:29:27    

moi j'utilise
 
-Wall -W -Wshadow -Wpointer-arith -Wcast-align -Wunreachable-code -Winline -Wwrite-strings -Wbad-function-cast -Wsign-compare -Wcast-qual -Wpacked -Wpadded

Reply

Marsh Posté le 14-01-2006 à 03:38:38    

-W -Wall -Wfstrict-prototypes -Werror -ansi


---------------
Viendez vous battre à Prologin \o/
Reply

Marsh Posté le 15-01-2006 à 17:57:18    

j'aime pas trop le -Werror, parce que quand tu distribues ton soft, y a toujours des merdes sur certains environnement, souvent pas grand chose, et ça te bloques le build ...

Reply

Marsh Posté le 16-01-2006 à 12:05:01    

-Wunreachable-code
=> ca fonctionne ca ? j'avais entendu dire que ce n'etait pas au point ...


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 16-01-2006 à 13:26:00    

blackgoddess a écrit :

-Wunreachable-code
=> ca fonctionne ca ? j'avais entendu dire que ce n'etait pas au point ...


J'en ai eu un ce matin (gcc 3.4.3) tout à fait justifié.
 
Mais ça ne prouve rien.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 16-01-2006 à 18:23:37    

ok... Encore une question en C pour laquelle il y a une réponse par utilisateur (et surtout par utilisation ... ceci est quelque peu logique :)
 
Emmanuel Delahaye :  
Qu'est ce que fait -Wall qui ne vous convient pas ?
Que fait l'option -W[extra] (sans détailler bien sûr ...) ?
 
Pour ceux qui n'utilisent pas -ansi, quels sont les problèmes (on m'avait dit que c'était l'option à utiliser pour faire du code à peu près propre et compatible...)?
 

Reply

Marsh Posté le 16-01-2006 à 19:21:19    

julien_54 a écrit :

Emmanuel Delahaye :  
Qu'est ce que fait -Wall qui ne vous convient pas ?
Que fait l'option -W[extra] (sans détailler bien sûr ...) ?


Des warnings intempestifs sur ceci :  


   int a[4] = {0};


'missing initializers'
 
+ d'autres choses, probablement, mais je ne m'en souviens plus...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-01-2006 à 08:49:45    

OK, merci...

Reply

Marsh Posté le 17-01-2006 à 08:55:03    

blackgoddess a écrit :

-Wunreachable-code
=> ca fonctionne ca ? j'avais entendu dire que ce n'etait pas au point ...


 
j'ai du mal a comprendre pkoi ca ne serait pas au point ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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