[Mandriva2007] Erreur Compilation
Bonsoir à tous et à toutes.
Je suis nouveau sous Linux, j' en suis à ma 1ère compilation et j' ei le message d' erreur suivant auquel je ne comprends rien :
In file included from /usr/lib/gcc/i586-mandriva-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/iostream.h:31,
from cclienttoaol30.h:24,
from kernel30.h:50,
from caolcmd30.h:22,
from threadELVmake[2]: quittant le répertoire « /home/julien/Téléchargement/peng/peng »
make[1]: quittant le répertoire « /home/julien/Téléchargement/peng »
2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
kernel30.h:226: error: ISO C++ forbids declaration of ‘CAolCmd30’ with no type
kernel30.h:226: error: expected ‘;’ before ‘*’ token
make[2]: *** [threadELV3.o] Erreur 1
make[1]: *** [all-recursive] Erreur 1
make: *** [all-recursive-am] Erreur 2
Je n' y comprends rien du tout et aurais besoin d' aide pour ceci.
Je suis nouveau sous Linux, j' en suis à ma 1ère compilation et j' ei le message d' erreur suivant auquel je ne comprends rien :
In file included from /usr/lib/gcc/i586-mandriva-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/iostream.h:31,
from cclienttoaol30.h:24,
from kernel30.h:50,
from caolcmd30.h:22,
from threadELVmake[2]: quittant le répertoire « /home/julien/Téléchargement/peng/peng »
make[1]: quittant le répertoire « /home/julien/Téléchargement/peng »
2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
kernel30.h:226: error: ISO C++ forbids declaration of ‘CAolCmd30’ with no type
kernel30.h:226: error: expected ‘;’ before ‘*’ token
make[2]: *** [threadELV3.o] Erreur 1
make[1]: *** [all-recursive] Erreur 1
make: *** [all-recursive-am] Erreur 2
Je n' y comprends rien du tout et aurais besoin d' aide pour ceci.
A voir également:
- [Mandriva2007] Erreur Compilation
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Iptv erreur de lecture - Forum TV & Vidéo
14 réponses
Alors, le C++ est un langage objet, c'est à dire que l'on défini des objets (les classes) et les fonctions qui s'y rapportent. Comme ces classes peuvent être utilisées dans plusieurs programme, afin que chacun puisse en profiter, elles sont déclarées dans des en tête (les headers).
En C++ dans le temps les headers de la lib c, avaient un nom terminant par ".h", comme par exemple <iostream.h>. Aujourd'hui cette syntaxe est obsolète : on inclue <iostream> mais toutes les classes qui étaient dans ce fichier sont dans le namespace std (par exemple un ostream est devenu un std::ofstream)
Donc ça, ça correspond à ce message d'erreur
Le il te dit que pour pouvoir continuer à utiliser l'ancienne syntaxe il faut compiler avec l'option -Wno-deprecated.
Normalement si c'est bien foutu, il suffit de modifier le fichier Makefile et de chercher la balise qui ajoute les options à passer à g++ (le compilateur C++), qui s'appelle souvent CXXFLAGS ou CCFLAGS. Exemple :
L'erreur qui suit dit qu'il ne connaît pas la classe ‘CAolCmd30’ mais c'est parce qu'en fait il n'est pas arriver à comprendre le fichier caolcmd30.h, probablement à cause de l'erreur précédente. Merci de me reporter ici les 30 premières lignes du fichier en question pour que je puisse confirmer.
Bonne chance
En C++ dans le temps les headers de la lib c, avaient un nom terminant par ".h", comme par exemple <iostream.h>. Aujourd'hui cette syntaxe est obsolète : on inclue <iostream> mais toutes les classes qui étaient dans ce fichier sont dans le namespace std (par exemple un ostream est devenu un std::ofstream)
Donc ça, ça correspond à ce message d'erreur
make[1]: quittant le répertoire « /home/julien/Téléchargement/peng » 2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
Le il te dit que pour pouvoir continuer à utiliser l'ancienne syntaxe il faut compiler avec l'option -Wno-deprecated.
Normalement si c'est bien foutu, il suffit de modifier le fichier Makefile et de chercher la balise qui ajoute les options à passer à g++ (le compilateur C++), qui s'appelle souvent CXXFLAGS ou CCFLAGS. Exemple :
CXXFLAGS = -W -Wall -Wno-deprecated
L'erreur qui suit dit qu'il ne connaît pas la classe ‘CAolCmd30’ mais c'est parce qu'en fait il n'est pas arriver à comprendre le fichier caolcmd30.h, probablement à cause de l'erreur précédente. Merci de me reporter ici les 30 premières lignes du fichier en question pour que je puisse confirmer.
Bonne chance
Merci Mamiemando pour ces explications.
Je suis nouveau sous linux et néophyte en informatique mais j' ai ouvert le fichier makefile et ai trouvé une ligne "KDE_CXXFLAGS = ", je vais essayer de la bidouiller.
Je suis nouveau sous linux et néophyte en informatique mais j' ai ouvert le fichier makefile et ai trouvé une ligne "KDE_CXXFLAGS = ", je vais essayer de la bidouiller.
Bonjour.
Bon, ben, j' ai essayé de rajouter la ligne -W -Wall -Wno-deprecated dans la ligne KDE_CXXFLAGS dans le fichier makefile et makefile.in, mais ça na rien changé et j' ai l' impression que le rajout a tendance à disparaitre à la tentative de compilation.
Il s' agit d' un programme développé d' abord pour i386, je m' en suis aperçu après coup, et je crois que mon pc est i586, le programme peut-il quand même tourner sur mon PC sans trop de bidouilles.
Je vais peut-être m' en mordre les doigts, mais en vérité, il me faut peut-être préciser que le logiciel en question est Pengaol 1.05, si cela peut aider.
Bon, ben, j' ai essayé de rajouter la ligne -W -Wall -Wno-deprecated dans la ligne KDE_CXXFLAGS dans le fichier makefile et makefile.in, mais ça na rien changé et j' ai l' impression que le rajout a tendance à disparaitre à la tentative de compilation.
Il s' agit d' un programme développé d' abord pour i386, je m' en suis aperçu après coup, et je crois que mon pc est i586, le programme peut-il quand même tourner sur mon PC sans trop de bidouilles.
Je vais peut-être m' en mordre les doigts, mais en vérité, il me faut peut-être préciser que le logiciel en question est Pengaol 1.05, si cela peut aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si ça peut aider, voici le lien de téléchargement de l' archive .tar en question.
Je n' y ai pas trouvé de fichiers README ou INSTALL expliquant en détail la marche à suivre, il y a un dossier "doc" avec 5 pages mais selon elles la compilation doit se faire en 1 seconde sans aucun problème. J' ai cherché sur d' autres sites des explications sur l' installation et la compilation mais si je demandes "./configure", on m' annonce que je dois d' abord recompiler, si je demandes à utiliser le fichier "make", on me dit que c' est pas possible ou un truc du genre.
Je n' y ai pas trouvé de fichiers README ou INSTALL expliquant en détail la marche à suivre, il y a un dossier "doc" avec 5 pages mais selon elles la compilation doit se faire en 1 seconde sans aucun problème. J' ai cherché sur d' autres sites des explications sur l' installation et la compilation mais si je demandes "./configure", on m' annonce que je dois d' abord recompiler, si je demandes à utiliser le fichier "make", on me dit que c' est pas possible ou un truc du genre.
Bonjour Mamie mando et merci encore pour ton aide.
En fait, j' essayes de compiler les sources contenues dans l' archive Pengaol1.05.tar afin d' installer le dit Pengaol sur mon PC. (toujours le même problème de connexion AOLbox de mes ****).
Je suis nouveau et j' essayes de suivre les conseils que je trouves mais j' y arrives pas comme j' écrivais.
En fait, j' essayes de compiler les sources contenues dans l' archive Pengaol1.05.tar afin d' installer le dit Pengaol sur mon PC. (toujours le même problème de connexion AOLbox de mes ****).
Je suis nouveau et j' essayes de suivre les conseils que je trouves mais j' y arrives pas comme j' écrivais.
C'est marrant en faisant un epitt apt-cache search j'ai trouvé ça :
Apparemment il y a un paquet penggy (sous debian en tout cas) qui fait ce que tu veux. Et il semble exister sous mandriva :
http://fr2.rpmfind.net/...
Bref peut-être qu'il suffit de faire en root un petit :
Bonne chance
(mando@aldur) (~) $ apt-cache search aol aolserver4 - AOL Web Server 4 (Program) ... aolserver4-nsxml - Module for XML support in aolsever4 grouch.app - AOL and ICQ Instant Messenger client for GNUstep html-helper-mode - A popular HTML editing mode for emacs naim - A console client for AOL Instant Messenger and IRC penggy - connects to AOL via modem or TCP/IP pork - Console-based AOL Instant Messenger & IRC client sfront - MPEG 4 Structured Audio decoder tagtool - tool to tag and rename MP3 and Ogg Vorbis files timps - Transparent Instant Messaging Proxy Server
Apparemment il y a un paquet penggy (sous debian en tout cas) qui fait ce que tu veux. Et il semble exister sous mandriva :
http://fr2.rpmfind.net/...
Bref peut-être qu'il suffit de faire en root un petit :
urpmi penggy
Bonne chance
Salut,
pour compiler et installer Peng il faut d'abord lancer la commande ./recompile
si on ouvre le fichier recompile on lit :
wim@neptune:~/Desktop/Tarball/peng$ cat recompile
#!/bin/sh
export CXXFLAGS="-D_REENTRANT"
mv configure configure.tmp
cp configure.ori configure
./configure --host i386 --target i386
rm configure
mv configure.tmp configure
make clean
blabalbla ....
c'est peut-être là qu'il faut bidouiller ...
:-))
pour compiler et installer Peng il faut d'abord lancer la commande ./recompile
si on ouvre le fichier recompile on lit :
wim@neptune:~/Desktop/Tarball/peng$ cat recompile
#!/bin/sh
export CXXFLAGS="-D_REENTRANT"
mv configure configure.tmp
cp configure.ori configure
./configure --host i386 --target i386
rm configure
mv configure.tmp configure
make clean
blabalbla ....
c'est peut-être là qu'il faut bidouiller ...
:-))
Alors, aux dernières nouvelles, je m' arraches les neveux avec un problème digne de la haute administration : Penggy requiert 3 fichiers (libguile-ltdl.so.1, libguile.so.12 et libqthreads.so.12), le site RPMPBone.net me renvoie, pour chacun de ces fichiers, à la page de téléchargement de libguile.12-1.6.8 qui requiert, lui, le fichier guile = 1.6.8 or une recherche de ce fichier me mène à l' installation de libguile12-1.6.8 ou à l' installation de siwg-doc, ce qui ne modifie pourtant rien ensuite à la dépendance en guile = 1.6.8.
Dites, j' ai une question très conne : que signifie "Polish(ed) Linux Distribution" dans les pages de téléchargement ? que c' est une version stantard pour différentes versions ? (au fait, je ne trouves que des fichiers guile = 1.6.7 sur rpmfind)
Alors, j' ai trouvé ceci : http://ftp.gnu.org/pub/gnu/guile/
J' ai téléchargé l' archive guile-1.6.8, l' ai transféré sur mon fixe, décompressé, configuré, compilé et installé sans problèmes (apparemment, du moins sans messages d' erreurs) et pourtant je ne peux toujours pas installer le paquetage libguile12-1.6.8. (censé convenir à la fois pour les 3 paquetages requis pour Penggy dans mon cas) car il ne trouve pas guile 1.6.8.
J' ai téléchargé l' archive guile-1.6.8, l' ai transféré sur mon fixe, décompressé, configuré, compilé et installé sans problèmes (apparemment, du moins sans messages d' erreurs) et pourtant je ne peux toujours pas installer le paquetage libguile12-1.6.8. (censé convenir à la fois pour les 3 paquetages requis pour Penggy dans mon cas) car il ne trouve pas guile 1.6.8.
Normalement urpmi est sensé t'installer toutes les dépendances, non ? Tu tapes bien dans une console root :
Si tu as des problèmes de urpmi vérifie tes miroirs
http://easyurpmi.zarb.org/?language=fr
Si tu ne t'en sors pas normalement mandriva propose un gestionnaire de paquets en mode graphique.
Sinon pour le polished aucune idée j'ai jamais vu ça. A part te dire cf google je ne sais pas quoi te dire.
Bonne chance
urpmi penggy
Si tu as des problèmes de urpmi vérifie tes miroirs
http://easyurpmi.zarb.org/?language=fr
Si tu ne t'en sors pas normalement mandriva propose un gestionnaire de paquets en mode graphique.
Sinon pour le polished aucune idée j'ai jamais vu ça. A part te dire cf google je ne sais pas quoi te dire.
Bonne chance
Ben, quand je tapes urpmi ..... en tant que superutilisateur, il m' affiche que le dit fichier ne peut être installé car tel fichier requis est non satisfait et me demande si je veux continuer. J' ai beau lui répondre oui, l' instant d' après le prompteur revient et je vérifies ensuite que le paquetage n' est pas installé.
J' ai été voir le lien que tu m' as fourni Mamiemando mais il y a un truc que je piges pas : à l' étape 3 il me dit de taper quelque chose à la console en tant que root apparement afin de me connecter avec le miroir de téléchargement, donc sur une console linux non ?, mais la connexion que j' ai est du fait de mon portable et c' est sur mon fixe que j' ai installé linux et que je galères dans le but de connecter enfin mon fixe (sous linux) à mon AOLbox.
J' ai été voir le lien que tu m' as fourni Mamiemando mais il y a un truc que je piges pas : à l' étape 3 il me dit de taper quelque chose à la console en tant que root apparement afin de me connecter avec le miroir de téléchargement, donc sur une console linux non ?, mais la connexion que j' ai est du fait de mon portable et c' est sur mon fixe que j' ai installé linux et que je galères dans le but de connecter enfin mon fixe (sous linux) à mon AOLbox.
Désolé je ne sais pas comment te dépanner. Sous debian et ubuntu il aurait suffit de télécharger les dépendances et de les mettre dans /var/cache/apt/archives, mais sous mandriva je ne sais pas comment faire. J'ai peur que tu doives télécharger tous les rpm requis sur un pc connecté à internet par exemple via rpmfind.net, et que tu installes ces paquets en root :
Le truc c'est que tu risques d'avoir des problèmes de dépendances en cascade :s
Bon courage (tu vas en avoir besoin)
cd /le/repertoire/des/rpm rpm -ivh *rpm
Le truc c'est que tu risques d'avoir des problèmes de dépendances en cascade :s
Bon courage (tu vas en avoir besoin)