Contexte:
Je travaille sur un projet écrit dans un mélange de C et Fortran 77 et maintenant besoin de relier les bibliothèques LAPACK/BLAS au projet (tout dans un environnement Linux). Le LAPACK en question est la version 3.2.1 (y compris BLAS) de netlib.org. Les bibliothèques ont été compilées en utilisant le Makefile de niveau supérieur (make lapacklib et make blaslib).Lier les bibliothèques LAPACK/BLAS
Problème:
pendant la liaison, les messages d'erreur a affirmé que certains (pas tous) BLAS-routines appelées des routines LAPACK-ne sont pas définis. Cela m'a donné quelques maux de tête, mais le problème a finalement été résolu lorsque (dans le Makefile) l'ordre d'apparition des bibliothèques à lier a été changé.
code:
Dans ce qui suit, (a) donne des erreurs tout en (b) ne fonctionne pas. La liaison est effectuée par (c).
(a) LIBS = $ (LAPACK) /blas_LINUX.a $ (LAPACK) /lapack_LINUX.a
(b) LIBS = $ (LAPACK) /lapack_LINUX.a $ (LAPACK) /blas_LINUX.a
(c) gcc -Wall -O -o $ @ project.o projet.Un $ (LIBS)
question:
Quelle pourrait être la raison pour laquelle les références non définies seulement quelques routines et ce qui rend l'ordre d'apparition pertinent?