2012-12-18 1 views
0

Les messages sont ci-dessous:Pourquoi gcc se plaint qu'une bibliothèque ne peut pas être trouvée alors qu'elle est déjà là?

$:~/software/version_1.02/example$ gcc -Wall -Wextra example.c -I../include -L../lib -lnnmf -larpack -llapack \ 
-lblas -o main 
In file included from example.c:47: 
../include/nmfdriver.h:92:7: warning: no newline at end of file 
example.c:53: warning: unused parameter ‘argc’ 
example.c:53: warning: unused parameter ‘argv’ 
/usr/bin/ld: cannot find -larpack 
collect2: ld returned 1 exit status 
$:~/software/version_1.02/example$ ls /usr/lib/*arpack* 
/usr/lib/libarpack.so.2 /usr/lib/libarpack.so.2.0.0 

Le arpack est installé par yum (gestionnaire de paquets). Je me demandais pourquoi on ne peut pas le trouver. Est-ce que quelqu'un a des idées sur la façon de résoudre ce problème?

+1

chercherais 'libarpack.so' version sans. Peut-être avez-vous besoin du paquet 'dev' ou d'un lien symbolique. –

+1

vous devez trouver si 'libarpack' est présent dans' ../ lib' ou dans les chemins de la bibliothèque par défaut. – askmish

Répondre

5

Il se peut qu'il recherche les bibliothèques sans les suffixes de version.
Essayez de faire un lien sans suffixe de version à l'un des plus versionnés:

sudo ln -s /usr/lib/arpack.so.2 /usr/lib/arpack.so 
+0

Cela fonctionne. Merci! –

+0

Pls accepter la réponse si elle a résolu votre problème. – Jay

Questions connexes