[autogen...] lien application et bibliotheque

lien application et bibliotheque [autogen...] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 31-03-2007 à 20:19:23    

:hello:  
 
J'ai un petit probleme avec une application
 

Citation :

enigma: error while loading shared libraries: libenigma.so.1: cannot open shared object file: No such file or directory


 
J'ai une application qui s'appelle enigma et une bibliotheque qui s'appelle enigma. En ce moment j'essaye de créer un script d'installation (autogen, make, make install) pour les 2.
 
Pour la bibliotheque tout semble bien se passé, j'obtiens ces fichiers:
 

Citation :

ls /opt/e17/lib/libenigma.
libenigma.a         libenigma.so        libenigma.so.1.0.0
libenigma.la        libenigma.so.1


 

Citation :

ls /opt/e17/include/enigma/
command.h    dns.h        libenigma.h  save_load.h  
config.h     ethernet.h   regexp.h     wifi.h


 

Citation :

cat /opt/e17/lib/pkgconfig/enigma.pc  
prefix=/opt/e17
exec_prefix=${prefix}
libdir=/opt/e17/lib
includedir=${prefix}/include
datarootdir=${prefix}/share
datadir=${datarootdir}
 
Name: enigma
Description: Enigma toolkit.
Requires:  
Version: 0.0.1
Libs: -L${libdir} -lenigma
Cflags: -I${includedir} -I${includedir}/enigma


 
Ensuite j'installe l'application, autogen trouve bien libenigma et donc continue. Je fait make puis make install. Puis lorsque j'execute j'ai l'erreur que vous pouvez voir plus haut.
 
 
Si je copie libenigma.so dans /usr/lib tout fonctionne.
 
Mon probleme est que je ne sait pas si le probleme se trouve a la configuration de la librarie ou de l'application.  
- C'est la librairie qui ne sait pas ou elle est et donc ne donne pas l'information a l'appli
- ou bien l'application ne demande pas a la librairie ou elle est ?
 
Est ce que vous auriez une idée ?
Je pourrait mettre les fichiers sur internet si cela est nécessaire.


Message édité par ffomnislash le 31-03-2007 à 20:19:59
Reply

Marsh Posté le 31-03-2007 à 20:19:23   

Reply

Marsh Posté le 31-03-2007 à 20:32:30    

Dans ton Makefile, tu retrouves bien un -l /opt/e17/include et -L enigma ?


---------------
Be the one with the flames.
Reply

Marsh Posté le 31-03-2007 à 20:41:24    

Citation :


ENIGMA_CFLAGS = -I/opt/e17/include -I/opt/e17/include/etk -I/opt/e17/include/enigma
ENIGMA_LIBS = -L/opt/e17/lib -letk -lecore_file -ledje -lecore_x -lcurl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv -lidn -ldl -lssl -lcrypto -lz -levas -lecore_txt -lecore -lenigma
enigma_LDADD = -L/opt/e17/lib -letk -lecore_file -ledje -lecore_x -lcurl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv -lidn -ldl -lssl -lcrypto -lz -levas -lecore_txt -lecore -lenigma


 
Voila ce qui devrait t'interesser. L'application compile bien, les headers sont donc bien trouvés.

Reply

Marsh Posté le 31-03-2007 à 20:46:56    

Ah ok, j'ai pigé.
Comme le chemin vers la bibliothèque n'est pas classique, il va falloir le dire au système.
Soit avec la variable d'environnement LD_LIBRARY_PATH, soit en éditant le fichier /etc/ld.conf.so et en ajoutant le chemin vers ta biblio.


Message édité par Riot le 31-03-2007 à 20:47:15

---------------
Be the one with the flames.
Reply

Marsh Posté le 31-03-2007 à 20:54:03    

j'avait bien pensé a cela mais le probleme est que les librairies etk/ecore... sont bien trouvées or elles se trouvent au même endroit.
 
ceci dit en ajoutant le chemin dans LD_LIBRARY_PATH l'application fonctionne bien. Je doit pouvoir automatiser cela au niveau de la compilation de la librairie je pense.


Message édité par ffomnislash le 31-03-2007 à 20:55:37
Reply

Marsh Posté le 31-03-2007 à 22:00:30    

Je viens de voir que j'ai deja ce fichier
 

Citation :

cat /etc/ld.so.conf.d/e17.conf  
/opt/e17/lib


 

Citation :

cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf


 
Donc pourquoi suis je obligé de rajouter le PATH de la librairie a la main ? Sachant que les autres librairies (etk, ecore ..) sont trouvées ?


Message édité par ffomnislash le 31-03-2007 à 22:00:43
Reply

Marsh Posté le 01-04-2007 à 11:14:49    

Ah bah maintenant ca fonctionne, peut être qu'il fallait que je redémarre ou un truc du genre.
 
merci pour l'aide.

Reply

Marsh Posté le 01-04-2007 à 11:43:54    

Cool.
 
Sinon tu as testé Scons ?


---------------
Be the one with the flames.
Reply

Marsh Posté le 01-04-2007 à 12:17:41    

Scons ? >.<
 
edit --
je regarde


Message édité par ffomnislash le 01-04-2007 à 12:24:23
Reply

Marsh Posté le 01-04-2007 à 12:20:48    

http://www.scons.org/


---------------
Be the one with the flames.
Reply

Marsh Posté le 01-04-2007 à 12:20:48   

Reply

Marsh Posté le 01-04-2007 à 12:27:29    

oui ca a l'air pas mal dans le principe, je l'utiliserait dans un prochain projet je pense pour voir.
 
En attendant tout faire a la main au moins 1 fois ca permet d'apprendre des choses.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed