#1 Le 09/08/2013, à 09:58
- certes
problème lors de la compilation (pour débutant probablement ...)
Bonjour,
Quelqu'un pourrait il me dire d'ou provient l'erreur ?
make[1]: entrant dans le répertoire « /usr/local/share/sf-converter/sf-convert-v1.200-prod-src/sf-convert-v1.0 »
g++ -O -ansi -Werror -Wall -Wno-deprecated -DHAVE_STRCASECMP -DINCL_TEMPLATE_SRC -DHAVE_PLACEMENT_NEW -I./include -I../include -c src/util.C -o ./obj/util.o
src/util.C: In function ‘void dos2unix(char*)’:
src/util.C:2031:20: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C:2037:24: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C: In function ‘void file_handle(char*, char*)’:
src/util.C:1787:32: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C:1799:32: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C: In function ‘void delete_file(const char*)’:
src/util.C:1564:24: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C:1567:24: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C:1570:24: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
src/util.C:1575:20: erreur: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Werror=unused-result]
cc1plus: all warnings being treated as errors
make[1]: *** [util.o] Erreur 1
make[1]: quittant le répertoire « /usr/local/share/sf-converter/sf-convert-v1.200-prod-src/sf-convert-v1.0 »
make: *** [compile] Erreur 1
les instructions étaient les suivantes:
Installation and Usage Notes for the sf-convert Application
(Source Distribution)
1. Installation
Uncompress and unbundle the distribution using the following command:
zcat sf-convert-vX.X.tar.gz | tar -xf -
2. Building the Application
Position in the sf-convert-vX.X directory and run "make" command:
cd sf-convert-vX.X
make
The application executables will be placed in the "sf-convert-vX.X/bin"
subdirectory.
NOTE: Users working on Sun platforms are advised to check the compiler
flags in etc/make.platform.sunos5 file. Depending on the compiler version,
users may be required to make modifications to those compiler flags.
Les deux premières tentatives n'ont pas réussi
j'ai d'abord dû installer Bison
puis flex
mais là je coince
Mille merci
Hors ligne
#2 Le 09/08/2013, à 10:07
- telliam
Re : problème lors de la compilation (pour débutant probablement ...)
C'est écrit dans le log. Ton compilo génère une erreur si le code retour d'une fonction n'est pas testé. 2 possibilités : tu vire l'option du compilo ou alors tu modifies le code
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#3 Le 09/08/2013, à 10:27
- J5012
Re : problème lors de la compilation (pour débutant probablement ...)
perso l'erreur proviendrait plutot du typage : des valeurs int en resultats qui prennent en arguments des constantes caracteres : trouvez pas que ca fait bizarre ?
un type char ne peut pas etre const , plutot var, et si c'est var , le retour n'est pas un int ...
Hors ligne
#4 Le 09/08/2013, à 12:51
- telliam
Re : problème lors de la compilation (pour débutant probablement ...)
Y'a rien de bizarre a ça. System() prend une 'ligne de commande' en paramètre et retourne le résultat de l'exécution
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#5 Le 10/08/2013, à 08:59
- J5012
Re : problème lors de la compilation (pour débutant probablement ...)
@telliam : tu connais bcp de "lignes de commandes" qui soit en programmation typees comme des const char* au lieu d'etre des var char* ?
d'acc qu'une commande passee avec system() puisse renvoyer 0 ou 1 pour succes ou error mais c'est pas toujours le cas, qqfois c'est -1 ou meme une autre chaine non numerique ... je maintiens : erreurs de typage dans le source ...
Hors ligne
#6 Le 10/08/2013, à 09:12
- telliam
Re : problème lors de la compilation (pour débutant probablement ...)
Ben oui ta ligne de commande n'est pas modifiable donc elle peut être const.
-1 est un int donc je vois pas le probleme. En plus c'est dans le prototype de system(), il renvoie un int.
Et sauf erreur de ma part : var char* ça existe pas en C.
Je me base sur l'erreur du compilo.
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#7 Le 10/08/2013, à 09:41
- pingouinux
Re : problème lors de la compilation (pour débutant probablement ...)
Bonjour,
Pour ce qui est du typage de cette commande, voici le début de man system :
SYSTEM(3) Linux Programmer's Manual SYSTEM(3)
NAME
system - execute a shell commandSYNOPSIS
#include <stdlib.h>int system(const char *command);
Hors ligne
#8 Le 11/08/2013, à 21:56
- J5012
Re : problème lors de la compilation (pour débutant probablement ...)
oui pingouinux, j'ai fini par saisir en quoi une commande pouvait etre de type constante, cette variable etant passee par valeur et non par reference (le programme sait par avance de quelle commande il s'agit) ...
le code de retour etant la reponse attendue par systeme (0,1,-1)
je ne sais pas si on peut dire au compilateur d'ignorer les warnings, dans la config de "certes", le compilateur voit le warning comme une erreur "grave" ...
Hors ligne