Connexion

Forum

Logiciels » Autres logiciels [Réglé] Module .so introuvable trouvé, mais introuvable.

Jybz Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 10/10/2018 à 10h26

Messages: 1943

Le 08/07/2019 à 10h29
Bonjour à tous !

J'ai l'impression qu'il me manque une notion sur les modules. J'ai compilé les sources d'un logiciel, installé avec make install (je sais c'est sale).
Le fichier compilé (non installé) fonctionne, cependant sa copie installée ne trouve pas le module .so.

Code BASH :
 
[jybz@localhost LimeUtil (master)]$ pwd
/home/jybz/outils/LimeSuite/builddir/LimeUtil
 
[jybz@localhost LimeUtil (master)]$ ./LimeUtil --find
  * [LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D3AC91C81379B]
 
[jybz@localhost LimeUtil (master)]$ LimeUtil --find
LimeUtil: error while loading shared libraries: libLimeSuite.so.19.04-1: cannot open shared object file: No such file or directory
 
[jybz@localhost LimeUtil (master)]$ locate libLimeSuite.so
/home/jybz/outils/LimeSuite/builddir/src/libLimeSuite.so
/home/jybz/outils/LimeSuite/builddir/src/libLimeSuite.so.19.04-1
/home/jybz/outils/LimeSuite/builddir/src/libLimeSuite.so.19.04.0
/usr/local/lib/libLimeSuite.so
/usr/local/lib/libLimeSuite.so.19.04-1
/usr/local/lib/libLimeSuite.so.19.04.0
 
[jybz@localhost LimeUtil (master)]$ 
 


J'ai déjà exécuté en tant que root "ldconfig", mais ça ne change rien.
   
Jybz Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 10/10/2018 à 10h26

Messages: 1943

Le 08/07/2019 à 10h33
Bon, apparemment c'est qu'il manque le PATH pour le dossier /usr/local/lib j'ai l'impression...

Code BASH :
[root@localhost ~]# ldconfig -v | sort | grep lime
ldconfig: Ne peut évaluer par stat /libx32: Aucun fichier ou dossier de ce type
ldconfig: Chemin « /usr/lib » donné plus d'une fois
ldconfig: Chemin « /usr/lib64 » donné plus d'une fois
ldconfig: Ne peut évaluer par stat /usr/libx32: Aucun fichier ou dossier de ce type
        libgnuradio-limesdr.so -> libgnuradio-limesdr.so
[root@localhost ~]# 

   
Jybz Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 10/10/2018 à 10h26

Messages: 1943

Le 08/07/2019 à 10h47
Bien...

Je ne sais pas si j'ai fait ça dans les règles de l'art ou si j'ai été bourrin :

Code BASH :
[root@localhost ~]# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
 
[root@localhost ~]# cat /etc/ld.so.conf.d/
ftdi-drivers.conf  GL/                GL.conf            
 
[root@localhost ~]# cat /etc/ld.so.conf.d/ftdi-drivers.conf 
# Path to libftd2xx
/usr/local/lib64
 
[root@localhost ~]# cat /etc/ld.so.conf.d/GL.conf 
# This file is knowingly empty since the libraries are in standard search
# path. Please do not remove this file.
 
[root@localhost ~]# cp /etc/ld.so.conf.d/ftdi-drivers.conf /etc/ld.so.conf.d/limesuite.conf
 
[root@localhost ~]# vi /etc/ld.so.conf.d/limesuite.conf 
 
[root@localhost ~]# cat /etc/ld.so.conf.d/limesuite.conf 
# Path to libLimeSuite.so
/usr/local/lib
 
[root@localhost ~]# ldconfig


maintenant, ça fonctionne. Mais j'ai l'impression que ce n'est pas si propre que ça...
   
magnux77 Membre non connecté

Rang

Avatar

Inscrit le : 21/09/2009 à 11h49

Localisation : Champs-sur-Marne France

Messages: 5071

Le 08/07/2019 à 18h11
Visiblement, pas trop de compileurs ici pour te donner un avis... ;-)


...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia7-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia7 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia6/Xfce]
   
funix Membre non connecté

Rang

Avatar

Inscrit le : 17/12/2012 à 21h03

Messages: 548

Le 08/07/2019 à 20h11
si c'est clean, mais perso je m'embête pas à créer 36 fichiers sous /etc/ld.so.conf.d je mets tous les chemins des biblio directement dans le fichier /etc/ld.so.conf



FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
Blog - http://olivier.hoarau.org
Site web    
Jybz Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 10/10/2018 à 10h26

Messages: 1943

Le 08/07/2019 à 21h33
magnux77 :
Visiblement, pas trop de compileurs ici pour te donner un avis... ;-)

C'est un peu un problème sur Mageia je trouve, on a quelques perles, mais elles sont assez rare ^^

funix :
si c'est clean, mais perso je m'embête pas à créer 36 fichiers sous /etc/ld.so.conf.d je mets tous les chemins des biblio directement dans le fichier /etc/ld.so.conf

C'est exactement à toi Funix à qui je pensais, j'espérais que tu tombes sur ce poste ! :magic:
Merci !

On m'a dit aussi, que je devrais peut-être "modifier" le chemin d'installation, en argument de cmake
de souvenir, la procedure est :
git clone www.truc.muche
md truchmuche/build
cd trucmuche/build
cmake ../
make
make install

et peut-être que je devrais écrire quelquechose comme
cmake ../ -DPREFIX_INSTALL=/usr/lib
au lieu d'une sélection automatique de /usr/local/lib

As tu un avis dessus Funix ?
   
funix Membre non connecté

Rang

Avatar

Inscrit le : 17/12/2012 à 21h03

Messages: 548

Le 08/07/2019 à 21h56
oui avec cmake c'est un poil différent qu'avec les configure "traditionnels", tu dois d'abord taper dans ton répertoire build (ou équivalent)

cmake .. -LH

c'est un peu l'équivalent du configure --help, tu retrouves toutes les options de compilation. Ca va te donner des options généralistes du style (avec leur configuration par défaut)

CMAKE_INSTALL_PREFIX : PATH=/usr/local

mais aussi des options plus spécifiques comme (exemple avec opencv)

WITH_VA:BOOL=OFF
WITH_CUDA:BOOL=ON

pour modifier ces options tu les invoques ensuite en tapant ton make avec un -D devant, du style

cmake .. -DCMAKE_INSTALL_PREFIX=/opt -DWITH_VA=ON -DWITH_CUDA=OFF

personnellement ce que je compile perso, je préfère le mettre sous /usr/local/ pour bien différencier ce qui vient de la distrib et les installs perso, ça évite les conflits. Ensuite tu peux jongler avec une biblio, un exe maison ou leur version officielle en les différenciant avec le chemin ou avec les CFLAGS des makefile pour spécifier un chemin particulier plutôt qu'un autre. Ca peut être utile parfois quand tu as besoin de la dernière version d'un bibliothèque pour installer je ne sais quoi et que la distrib ne fournit qu'une ancienne version que tu ne peux pas remplacer du fait de dépendance, tu peux ainsi les faire cohabiter sans soucis.
sinon pour make, maintenant avec les process multicoeurs faut pas hésiter à jouer avec l'option -j (nombre de jobs) tu peux réduire facilement par 2 ou par 3 le temps de compilation. Perso j'utilise make -j5 Edité par funix Le 08/07/2019 à 21h57


FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
Blog - http://olivier.hoarau.org
Site web    
Jybz Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 10/10/2018 à 10h26

Messages: 1943

Le 08/07/2019 à 22h10
Merci ! Je ne connaissais pas -DH ! (Et forcément tout ce qui va avec, l'énumération des variables, etc)
Je compte apprendre à choisir pour être prêt à faire des paquets dans un futur. Lointain encore. ^^

(moi j'utilise -j8, la flème d'attendre)
   
funix Membre non connecté

Rang

Avatar

Inscrit le : 17/12/2012 à 21h03

Messages: 548

Le 08/07/2019 à 22h25
-LH pas -DH !


FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
Blog - http://olivier.hoarau.org
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie