Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3339 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [autogen...] lien application et bibliotheque

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[autogen...] lien application et bibliotheque

n°899373
ffomnislas​h
Posté le 31-03-2007 à 20:19:23  profilanswer
 

: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
mood
Publicité
Posté le 31-03-2007 à 20:19:23  profilanswer
 

n°899377
Riot
Buy me a riot
Posté le 31-03-2007 à 20:32:30  profilanswer
 

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


---------------
Be the one with the flames.
n°899380
ffomnislas​h
Posté le 31-03-2007 à 20:41:24  profilanswer
 

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.

n°899385
Riot
Buy me a riot
Posté le 31-03-2007 à 20:46:56  profilanswer
 

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.
n°899389
ffomnislas​h
Posté le 31-03-2007 à 20:54:03  profilanswer
 

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
n°899411
ffomnislas​h
Posté le 31-03-2007 à 22:00:30  profilanswer
 

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
n°899479
ffomnislas​h
Posté le 01-04-2007 à 11:14:49  profilanswer
 

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

n°899485
Riot
Buy me a riot
Posté le 01-04-2007 à 11:43:54  profilanswer
 

Cool.
 
Sinon tu as testé Scons ?


---------------
Be the one with the flames.
n°899488
ffomnislas​h
Posté le 01-04-2007 à 12:17:41  profilanswer
 

Scons ? >.<
 
edit --
je regarde


Message édité par ffomnislash le 01-04-2007 à 12:24:23
n°899490
Riot
Buy me a riot
Posté le 01-04-2007 à 12:20:48  profilanswer
 

http://www.scons.org/


---------------
Be the one with the flames.
mood
Publicité
Posté le 01-04-2007 à 12:20:48  profilanswer
 

n°899491
ffomnislas​h
Posté le 01-04-2007 à 12:27:29  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [autogen...] lien application et bibliotheque

 

Sujets relatifs
Apache : bloquer lien direct.Lien entre logiciels libres et animaux ?
Lien pour télécharger mandriva ?bibliotheque d'image libre ?
Application ntop en .deb, pas possible ?problème d'affichage sur une application
lien symbolique en panneImpossible de suprimer un lien dans gnome
un lien URL qui ne passe pas par NFSouvrir une application au demarage (sous X)
Plus de sujets relatifs à : [autogen...] lien application et bibliotheque


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)