Tatou + BLAS + LAPACK: erreur de couplage?
Lorsque j'essaie de compiler example1.cpp qui vient avec Tatou 2.4.2, je reçois les suivantes erreur:
/tmp/ccbnLbA0.o: In function `double arma::blas::dot<double>(unsigned int, double const*, double const*)':
main.cpp:(.text._ZN4arma4blas3dotIdEET_jPKS2_S4_[double arma::blas::dot<double>(unsigned int, double const*, double const*)]+0x3b): undefined reference to `wrapper_ddot_'
/tmp/ccbnLbA0.o: In function `void arma::blas::gemv<double>(char const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)':
main.cpp:(.text._ZN4arma4blas4gemvIdEEvPKcPKiS5_PKT_S8_S5_S8_S5_S8_PS6_S5_[void arma::blas::gemv<double>(char const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)]+0x68): undefined reference to `wrapper_dgemv_'
/tmp/ccbnLbA0.o: In function `void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)':
main.cpp:(.text._ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_[void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)]+0x7a): undefined reference to `wrapper_dgemm_'
collect2: ld returned 1 exit status
Quelqu'un peut-il aider? J'ai installé manuellement
- dernière version de BLAS
- lapack-3.4.0
- boost-1.48.0
- dernière version de l'ATLAS
Je suis sous Ubuntu 11.04 sur le MacBook Pro 7,1 modèle
On dirait que ton Tatou n'est pas correctement configuré OU le besoin de la bibliothèque n'est pas mentionné dans la chaîne de compilation. Pouvez-vous montrer, comment vous compilez example1.cpp
OriginalL'auteur Marc | 2012-01-23
Vous devez vous connecter pour publier un commentaire.
Merci beaucoup pour osgx! Après la lecture de son commentaire, j'ai pris un second regard sur le fichier lisez-moi! Il s'avère que j'ai été absent '-O1 -larmadillo' dans la commande!
Voici la commande que j'ai utilisé pour le faire fonctionner:
Erreur stupide, je sais.... Il va juste pour vous rappeler combien il est important de lire le fichier README.
Le fichier README mentionne également:
Si vous obtenez des erreurs de liaison, ou si Tatou a été installé manuellement
et si vous avez indiqué que LAPACK et BLAS sont disponibles, vous
besoin de lien explicite avec LAPACK et BLAS (ou leurs équivalents),
par exemple:
Je n'avais pas d'inclure "- llapack -lblas", mais peut-être que cela aidera quelqu'un d'autre qui a des problèmes similaires.
'cgemv_', 'sdot_'
, ...etc...OriginalL'auteur Marc
Il y a une bizarrerie que je viens de découvrir en comparant précédemment travail compilations de code avec le problème de ce fil de discussion, en soulignant l'implication de la gnu cc (je ne suis pas expert dans le présent): sur ma machine de compilation des succès dépend de l'ordre des paramètres de la gcc/g++ où
g++ infile -o outfile -libarmadillo ... travaillé, mais
g++ -libarmadillo infile -o outfile ..., na pas avec (presque) le même message d'erreur tel que mentionné ci-dessus.
(hope qui aide).
OriginalL'auteur Christoph
De 5.0.0 (peut aussi s'appliquer aux versions antérieures)
Vous avez réellement besoin
-larmadillo
, Fedora 21-llapack
et-lopenblas
ne sont pas excplicitly plus nécessaire.OriginalL'auteur drahnr