Erreur récursive compilation

Bonsoir à tous , j’ai tenté d’installer le logiciel zinf en le compilant pour m’entraîner.
Je suis donc la procédure classique.
./configure
make
make install

J’ai installée toutes les dépendances (du moins j’en suis presque certaine) de zinf grâce à aptitude.
D’ailleurs je passe avec succés le ./configure et le make pour me retrouver avec cette erreur au make install:

src/Http.cpp:769: error: 'strstr' was not declared in this scope
src/Http.cpp:773: error: 'strlen' was not declared in this scope
src/Http.cpp:775: error: 'atoi' was not declared in this scope
make[2]: *** [Http.lo] Erreur 1
make[2]: quittant le répertoire « /home/brain/zinf/zinf-2.2.5/lib/http »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/brain/zinf/zinf-2.2.5/lib »
make: *** [all-recursive] Erreur 1

Et d’aprés ce que je sais , une erreur de type récursive est trés trés embêtante d’aprés les cas similaire que j’ai pu voir sur d’autres forum.

Voici le site ou ce trouve les sources : zinf.org/download.php

Merci de m’aider à comprendre mes erreurs… :smt006

strstr et strlen sont des fonctions C standard. Il ne te manquerait pas des paquets d’en-têtes comme libc6-dev ?

Merci pascal pour ta réponse , le paquet libc6-dev est installer , pour le reste , je ne vois malheureusement pas comment savoir qu’elle autre libraire d’en tête c installer… :frowning:

Apparement en cherchant le type d’erreur sur la toile ce serait due a gcc , sur certaine distribution et sur d’autres programme des patches auraient été proposé pour réglé ce problème:

linuxquestions.org/questions … nt-744471/

n’y a t-il aucun patch pour gcc sous debian qui corrigerait cette erreur ??

Je ne pratique pas la compilation de programmes en C++ et je ne comprends pas la cause de ces erreurs, mais tu peux peut-être appliquer la même méthode que les patches mentionnés, qui semble consister à ajouter des #include manquants dans les fichiers sources qui provoquent ces erreurs. Ou sinon compiler avec une autre version de gcc/g++ qui ne provoque pas ces erreurs.

Je vais essayer de compiler ce programme ce soir sur ma machine perso (Debian sid/32bits)

Je tiens au courant de la tantative :wink:

Merci a tous pour vos réponses , n’étant pas à l’aise avec l’ajout des includes je vais essayer de trouver une autre solution…
Cependant , il semblerait que la version soit trés ancienne … 2004… Peut être qu’il n’est pas du tout optimisé pour un compilateur plus récent?

Rajoute

#include <stdlib.h> #include <strings.h> #include <memory.h>
dans lib/http/src/Http.cpp

[quote=“fran.b”]Rajoute

#include <stdlib.h> #include <strings.h> #include <memory.h>
dans lib/http/src/Http.cpp[/quote]

En effet , cela fonctionne commme ça , merci.
Mais comment connaitre cette astuce si on n’a pas une bonne base en programmation?
Mon objectif est de me débrouiller un peu plus toute seul , là je me sent trop materner , j’aimerai comprendre , est ce que je pouvais m’en sortir seul?Si oui comment?

Je sais , je suis une chieuse :stuck_out_tongue:

Le compilateur t’indique que des fonctions ne sont pas déclarées dans le fichier lib/http/src/Http.cpp. Bon. Ces fonctions sont déclarées dans des fichiers «include» assez standard. Tu peux soit consulter un bouquin (je recommande) ou une doc en ligne (par exemple http://www.cplusplus.com/reference/clibrary/cstring/strstr/), soit faire un grep dans /usr/include grep -r strlen * | sed -e '1,$s/:.*$//' | sort -u tu obtiens les fichiers .h (ici il y en a trop) où on parle de ces fonctions.

Une fois que tu as identifié le fichier .h, il te suffit de le rajouter en include en entête du fichier (en vérifiant aupravant par apt-file que tu as le dit fichier:

$ apt-file search /usr/include/strings.h libc6-dev: /usr/include/strings.h ). Usuellement, il y a un fichier .h propre au projet contenant les include standard. Tu rajoutes le include dans ce fichier .h ou bien (comme je te l’ai suggéré) dans le fichier se compilant mal. Cela dit, cela signifie que les sources sont incorrects…

Merci pour ta réponses , je pense que ça me servira de nouveau.Si j’obtiens de nouveau le même type d’erreur.

Et quel livre en particulier recommanderais tu??

Et quel livre en particulier recommanderais tu??[/quote]
http://forum.debian-fr.org/viewtopic.php?f=3&t=23534

Je pensais que François faisiat référence à un bouquin sur le C++ :unamused:

Oui, en C même: http://livre.fnac.com/a1634370/Christophe-Blaess-Programmation-systeme-en-C-sous-Linux

Arf. My mistake.