Hello !
J'ai fait une petit lib static qui parse les options de la ligne de commande et permet d'y accéder facilement, ça marche bien et ça compile bien, mais je sais pas pourquoi quand j'essaye de linker la lib pas directement ça plante.
Voilà les opérations réalisées :
création de la lib :
ça ça marche bien
.
Ensuite je copie la lib dans un autre dossier :
Je copie aussi le fichier hipopt.h dans /home/p4bl0/dev/headers
Ensuite, j'ai fais un petit prog de test qui utilise hipopt. Si je le compile comme ça ça marche niquel :
Tout se passe bien (j'ai juste un warning que je trouve con d'ailleurs... "hipoptest.c:5: warning: unused parameter argc". Mais c'est pas le problème.
Le problème c'est que si je fais ça ça ne marche pas :
GCC me dit ça du coup :
Et je comprends pas bien pourquoi, mais c'est la première fois que je fais moi même une lib, donc il y a peut-être des chose que je ne fais pas bien :heu:
Merci !
J'ai fait une petit lib static qui parse les options de la ligne de commande et permet d'y accéder facilement, ça marche bien et ça compile bien, mais je sais pas pourquoi quand j'essaye de linker la lib pas directement ça plante.
Voilà les opérations réalisées :
création de la lib :
Bloc de code:
gcc -c -ansi -W -Wall hipopt.c
ar rcs libhipopt.a hipopt.o
ça ça marche bien
Ensuite je copie la lib dans un autre dossier :
Bloc de code:
cp libhipopt.a /home/p4bl0/dev/lib/libhipopt.a
Ensuite, j'ai fais un petit prog de test qui utilise hipopt. Si je le compile comme ça ça marche niquel :
Bloc de code:
gcc -ansi -W -Wall -I/home/p4bl0/dev/headers hipoptest.c /home/p4bl0/dev/lib/libhipopt.a -o hoptest
Le problème c'est que si je fais ça ça ne marche pas :
Bloc de code:
gcc -ansi -W -Wall hipoptest.c -static -L/home/p4bl0/dev/lib -lhipopt -I/home/p4bl0/dev/headers -o hoptest
Bloc de code:
hipoptest.c:5: warning: unused parameter argc
/tmp/cc6RqTCi.o: In function `main':
hipoptest.c:(.text+0x18): undefined reference to `hopt_init'
hipoptest.c:(.text+0x59): undefined reference to `hopt_get'
hipoptest.c:(.text+0xa3): undefined reference to `hopt_isset'
hipoptest.c:(.text+0xd3): undefined reference to `hopt_free'
collect2: ld returned 1 exit status
make: *** [test] Erreur 1
Et je comprends pas bien pourquoi, mais c'est la première fois que je fais moi même une lib, donc il y a peut-être des chose que je ne fais pas bien :heu:
Merci !