Я скачал и скомпилировал Openblas, и теперь я пытаюсь скомпилировать и связать openblas с Suitesparse 4.4.4. После компиляции всех файлов lib я получаю следующую ошибку, когда компилятор пытается скомпилировать umfpack_di_demo.c:
../Lib/libumfpack.a(umf_di_local_search.o): в функции `umfdi_local_search ': umf_local_search.c :(. text + 0x4c0): неопределенная ссылка на `dtrsv_ ' umf_local_search.c :(. text + 0x634): неопределенная ссылка на `dgemv_ ' ../Lib/libumfpack.a(umf_di_blas3_update.o): в функции `umfdi_blas3_update ': umf_blas3_update.c :(. text + 0x11d): неопределенная ссылка на `dtrsm_ ' umf_blas3_update.c :(. text + 0x1de): неопределенная ссылка на `dgemm_ ' umf_blas3_update.c :(. text + 0x2ae): неопределенная ссылка на `dger_ '
что я имел в виду, что ссылки не являются правильными. Но, как указано в SuiteSparse_config.mk, я указал абсолютное местоположение libopenblas.a в моей системе. Кроме того, я также gcc-nm, чтобы увидеть, определен ли символ dtrsv_ в libopenblas.a, и я получил следующий вывод, который показывает, что символ определен в библиотеке:
0000000000000000 T dtrsv_ U dtrsv_NLN U dtrsv_NLU U dtrsv_NUN U dtrsv_NUU U dtrsv_TLN U dtrsv_TLU U dtrsv_TUN U dtrsv_TUU U dtrsv_NLN U dtrsv_NLU U dtrsv_NUN U dtrsv_NUU U dtrsv_TLN U dtrsv_TLU U dtrsv_TUN U dtrsv_TUU dtrsv_NUU.o: 0000000000000000 T dtrsv_NUU dtrsv_NUN.o: 0000000000000000 T dtrsv_NUN dtrsv_NLU.o: 0000000000000000 T dtrsv_NLU dtrsv_NLN.o: 0000000000000000 T dtrsv_NLN dtrsv_TUU.o: 0000000000000000 T dtrsv_TUU dtrsv_TUN.o: 0000000000000000 T dtrsv_TUN dtrsv_TLU.o: 0000000000000000 T dtrsv_TLU dtrsv_TLN.o: 0000000000000000 T dtrsv_TLN U dtrsv_NLU U dtrsv_NUN U dtrsv_TLU U dtrsv_TUN U dtrsv_NLU U dtrsv_NUN U dtrsv_TLU U dtrsv_TUN U dtrsv_ U dtrsv_ U dtrsv_
Я не уверен, что здесь происходит не так. Стоит ли включать lapack с openblas в файл suitesparse_config.mk? Любая помощь приветствуется. Благодарю.
Примечание: если это поможет, я использовал gcc 4.4.7 для всей компиляции и мои системные детали:
Linux 3.2.0-4-amd64 # 1 SMP Debian 3.2.60-1 + deb7u3 x86_64 GNU / Linux
== РЕДАКТИРОВАТЬ 1: шаги, которые я следовал ==
Для Openblas:
make FC = / usr / bin / lgfortran-4.4
Я должен был указать ‘FC’, так как в моей системе нет libgfortran. * Присутствует в / usr / lib /.
Для suitesparse:
Задача ещё не решена.