Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

Packaging probleme a l'installation de fftw3 l'editeur de lien ne trouve pas la bibliotheque

porschecollec Membre non connecté

Rang

Avatar

Inscrit le : 01/11/2014 à 12h44

Localisation : Frouzins

Messages: 100

Le 19/01/2017 à 02h12
Le probleme est assez clair; l'installation de fftw3 semble s'etre bien passe. mais en lancant compilation et edition de lien, on a le message d'erreur:

/usr/bin/ld: ne peut trouver -lfftw3
collect2: erreur: ld a retourné 1 code d'état d'exécution

Est-ce une erreur connue du package inclus dans mageia5? faut-il installer fftw3 a partir d'un rpm exterieur?
En attente d'idee de la part des specialistes.


--- jean ---
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 8022

Le 19/01/2017 à 09h53
Bonjour Jean,
Pourrais-tu être plus précis ?
Tu sembles parler d'une installation, mais ensuite de compilation.
Décris mieux les étapes que tu réalises.


Yves
   
porschecollec Membre non connecté

Rang

Avatar

Inscrit le : 01/11/2014 à 12h44

Localisation : Frouzins

Messages: 100

Le 20/01/2017 à 01h36
Bonsoir yves Papoteur,
installation: j'ai simplement trouve aisement dans le CCM les packages fftw3 (je pourrais verifier lesquels exactement si necessaire) que j'ai installe comme d'habitude8bouton (Appliquer) a partir du reseau. Rien de special a noter, 10 mn plus tard, je sortais du CCM installation effectuee. Tout a donc ete fait sous le CCM, rien en ligne de commande.
compilation: tout etant installe, j'ai compile comme d'habitude. ma commande est la suivante

gfortran -g declarations.f95 sous_programmes.f95 LossGain.f95 -I /usr/include -L /usr/lib -l pgplot -L /usr/lib -l fftw3 -l X11 -o LossGain

2 modules et un programme principal. l'adresse des include, celle des librairies. puis specifiquement les librairies de pgplot et de fftw3. le second -L a ete ajoute en cours d'essai, au depart il n'etait pas la. j'avais aussi au depart /usr/ lib64, mais comme tout cela tournait sous un autre pc en x86_64 et que celui-ci est un i686, j'ai vire dans un second temps le 64 car bien sur la lob64 n'existe pas.
je vois bien qu'il<n'y a pas de libfftw3.a mais des .so et .so.4, mais normalement je n'ai pas a intervenir et faire moi-meme des liens, d'ailleurs lesquels?
voila, tout est decrit. Qu'en penses-tu?
Cordialement,
-- Jean ---


--- jean ---
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 8022

Le 20/01/2017 à 18h19
Essaye quand même le lien symbolique
ln -s libffw".so.4 libffw3.a


Yves
   
porschecollec Membre non connecté

Rang

Avatar

Inscrit le : 01/11/2014 à 12h44

Localisation : Frouzins

Messages: 100

Le 21/01/2017 à 00h50
Bonsoir papoteur,
j'ai ajoute le lien exact: ln -s libfftw3.so.3 libfftw3.a
le repertoire /usr/lib contient plein de libfftw3 avec des threads, des version differentes. les fichiers les plus interessants sont libfftw3.so.3 et le meme avec .4.4 (ou qq chose de proche) le premier etant un lien sur le second.
j'ai donc maintenant un double lien, et bien entendu la compilation a fonctionne (j'ai vire le 2 ieme -L /usr/lib qui est inutile) et le programme tourne normalement.
Il reste qu'il faut choisir la bonne librairie (ici libfftw3.so.3) sur laquelle pointer, et il faut faire le lien a la main. Je croyais que le CCM utilisait des rpm et que l'installation en sortie etait complete, d'ou mes hesitations a intervenir sans conseil d'un specialiste. Bizarre qu'il faille faire cela. probleme du CCM ou package incomplet...?
Merci en tout cas de ton avis qui fut le bon.
--- jean ---


--- jean ---
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 8022

Le 25/01/2017 à 09h13
Bonjour Jean,
Content que tu puisses avancer :-)
Il se peut que ce soit ton programme qu'il faille changer.
Dans l'exemple de cette page https://gcc.gnu.org/wiki/GfortranBuild , on voit que dans le fichier source, il est indiqué d'aller chercher certaines librairies dont le nom se termine par .a . Il se peut que ton programme fasse de même, et qu'en changeant le .a en .so, tu n'aies plus besoin du lien.


Yves
   
Akien Membre non connecté

Rang

Avatar

Équipe Mageia

Inscrit le : 12/06/2011 à 12h52

Localisation : Allemagne

Messages: 1245

Le 26/01/2017 à 13h22
Il te manque juste lib64fftw-devel, non? ld utilise les fichier .so pour le linkage, qui sont disponibles dans les paquets -devel avec les headers correspondants.

De même, pour que ton -lpgplot -lX11 fonctionne, il te faudra aussi lib64x11-devel.

Si ton système est i586, il te faut bien sûr libfftw-devel et libx11-devel à la place. Edité par Akien Le 26/01/2017 à 13h26



Co-responsable de l'équipe de packaging de Mageia (dev).
Packaging (voir mes paquets) et assurance qualité (QA).
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie