Bonsoir,
je tente de compiler un ptit programme maison utilisant libnet, et bien qu'ayant installé libnet1 et libnet1-dev, gcc me dit toujours la meme chose :
gcc -o plop plop.c
/tmp/ccUr4juG.o(.text+0x41): In function `main':
: undefined reference to `net_init'
/tmp/ccUr4juG.o(.text+0x65): In function `main':
: undefined reference to `net_loadconfig'
/tmp/ccUr4juG.o(.text+0x89): In function `main':
: undefined reference to `net_detectdrivers'
/tmp/ccUr4juG.o(.text+0xad): In function `main':
: undefined reference to `net_initdrivers'
collect2: ld a retourné 1 code d'état d'exécution
J'ai essayé de passer la librairie en parametre, mais j'm'embourbe, en général mes programmes utilisent des libs standard et cette ligne de commande suffit, donc là je sêche...
Merci pour votre aide
# et -lnet ?
Posté par Pat Le Nain . Évalué à 2.
[^] # Re: et -lnet ?
Posté par cho7 (site web personnel) . Évalué à 1.
[^] # Re: et -lnet ?
Posté par jlh . Évalué à 1.
gcc 'libnet-config --cflags --libs' -o plop plop.c
[^] # Re: et -lnet ?
Posté par cho7 (site web personnel) . Évalué à 1.
On retombe donc dans la solution de Pat le nain :(
[^] # Re: et -lnet ?
Posté par jlh . Évalué à 1.
Il semble y en avoir 2 diiférentes, celle du site de sourceforge (http://libnet.sourceforge.net(...)) qui est la version 0.10.11 et qui définit bien les fonctions qu'il te manque (net_init(), net_loadconfig(), etc....).
Et la version 1.2.2.1-1 du site de debian (unstable) qui n'utilise pas ces fonctions mais plutot : libnet_config() etc ... (voir la doc)
[^] # Re: et -lnet ?
Posté par cho7 (site web personnel) . Évalué à 1.
Jvais essayer avec la libnet0 pour voir ce que ca donne.
[^] # Re: et -lnet ?
Posté par jlh . Évalué à 1.
grep -n -r net_init /usr/include/libnet/*
pour voir si les fonctions net_init et net_inidrivers sont bien définies dans les headers de la lib.
[^] # Re: et -lnet ?
Posté par cho7 (site web personnel) . Évalué à 1.
[^] # Re: et -lnet ?
Posté par jlh . Évalué à 1.
et un rapide coup d'oeil sur la doc du site montre qu'elle n'utilise pas les fonctions que tu cherches (elles commencent toutes par libnet_quelquechose() ).
Les fonctions que tu utilises dans ton programme viennent de la libnet du site de sourceforge.
Hope this helps :-)
[^] # Re: et -lnet ?
Posté par cho7 (site web personnel) . Évalué à 1.
N'arrivant pas a compiler la libnet de sourceforge, j'vais adapter mon programme pour qu'il marche avec la libnet de packetfactory/debian...
Merci pour ton aide.
# AMHA
Posté par doublehp (site web personnel) . Évalué à 0.
ls /usr/include | grep libnet
si y a rien, c est que le pakage n est pas installe.
ensuit, il faut include la lib dans les src de ton apli ... c est evident, mais des fois on oublie. Matte TOUS tes fichiers source, et verifie dans chacun que tu inclus bien la lib ...
enfin, il faut compiler contre cette lib : la j ai vu un -lnet qqpart qui me parait touta fait aproprie.
le pakage libnet1 ne sert qu a l execution.
Si ca marche tj pas...
cd /usr/include
rgrep -nri "net_detectdrivers" *
si il te sors rien, et que pourtant
ls /usr/include | grep libnet
te donnait un resultat, c est que la lib est mal installee.
si ca te sors qqch, alors ca devrait compiler; reverifie mes points 2 et 3.
Si au bout de 20 mn y a tj rien ... la solution ultime est :
irc.freenode.net -> chan #c
[^] # Re: AMHA
Posté par Pooly (site web personnel) . Évalué à 2.
essaye de voir ou elle est installé, et si son répertoire se trouve dans /etc/ld.so.sonf, sinon rajoute le. (j'imagine qu'il y est... mais ça peut servir en cas de compil manuelle)
ensuite :
ldconfig
[^] # Re: AMHA
Posté par Thomas Douillard . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.