petit sondage : options de compilation avec gcc - C - Programmation
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 ...)
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)
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...)
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.
Marsh Posté le 13-01-2006 à 17:15:07
moi j'utilise plûtot les variantes -std=c89/c99/gnu89/gnu99
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 ?
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):
|
et, suite à une discussion ailleurs, je viens d'ajouter ça :
-Wunreachable-code |
Marsh Posté le 13-01-2006 à 20:03:08
Pourquoi ne pas utiliser -Wall, au lieu de tout détailler ?
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...
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
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 ...
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 ...
Marsh Posté le 16-01-2006 à 13:26:00
blackgoddess a écrit : -Wunreachable-code |
J'en ai eu un ce matin (gcc 3.4.3) tout à fait justifié.
Mais ça ne prouve rien.
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...)?
Marsh Posté le 16-01-2006 à 19:21:19
julien_54 a écrit : Emmanuel Delahaye : |
Des warnings intempestifs sur ceci :
|
'missing initializers'
+ d'autres choses, probablement, mais je ne m'en souviens plus...
Marsh Posté le 17-01-2006 à 08:55:03
blackgoddess a écrit : -Wunreachable-code |
j'ai du mal a comprendre pkoi ca ne serait pas au point ?
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 ...)