компиляция Suitesparse 4.4.4 с Openblas на Linux

Я скачал и скомпилировал 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:

  1. Скачал openblas из
    http://github.com/xianyi/OpenBLAS/zipball/v0.2.14.
  2. Разархивировал и скомпилировал его в моей системе, используя gcc-4.4.7 и следующую команду

    make FC = / usr / bin / lgfortran-4.4

    Я должен был указать ‘FC’, так как в моей системе нет libgfortran. * Присутствует в / usr / lib /.

  3. После компиляции я набираю
    сделать установку
    установить в пользовательский каталог в моей домашней папке.

Для suitesparse:

  1. Скачанные сюиты разбросаны с http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.4.tar.gz
  2. Разархивировал его и отредактировал файл suitparse_config.mk, сделав следующие изменения: A) включил конфигурацию графического процессора для CHOLMOD и SPQR, B) не использовал metis, поэтому прокомментировал «METIS_PATH = ../../metis-4.0» и «METIS = ../../metis-4.0/libmetis.a «. Кроме того, незафиксировано «CHOLMOD_CONFIG = -DNPARTITION». C) дал путь к пользовательской установке openblas: BLAS = -L // OpenBLAS / local / lib / libopenblas.a -lpthread -L / usr / lib / gcc / x86_64-linux-gnu / 4.4.7 / libgfortran.so
  3. введите make в srcdir.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]