Соединение Intel MKL (BLAS & LAPACK) с GCC

Я пытаюсь собрать гигантский программный пакет, и это последнее препятствие, которое я не могу понять.

Я получаю ошибки, такие как:

RNDiracDeterminantBase.cpp:(.text+0x22bf): undefined reference to `dgetrf_'
RNDiracDeterminantBase.cpp:(.text+0x2524): undefined reference to `dgetri_'
RNDiracDeterminantBase.cpp:(.text+0x3005): undefined reference to `dgetri_'
../../lib/libqmcwfs.a(RNDiracDeterminantBase.cpp.o): In function `qmcplusplus::RNDiracDeterminantBase::ratio(qmcplusplus::ParticleSet&, int, qmcplusplus::ParticleAttrib<qmcplusplus::TinyVector<double, 3u> >&, qmcplusplus::ParticleAttrib<double>&)':
RNDiracDeterminantBase.cpp:(.text+0x4156): undefined reference to `dgemv_'
RNDiracDeterminantBase.cpp:(.text+0x420f): undefined reference to `dger_'

Google показывает, что эти ссылки относятся к библиотеке Intel MKL. Однако я не знаю, какой файл мне нужно связать. Я пробовал libmkl_core.a, libmkl_gnu_thread.a, libmkl_blacs_intelmpi_lp64.a и т. Д. В нем множество файлов:

/ Мкл / Библиотека / Intel64 /

Можно разместить больше информации, если требуется.

3

Решение

Я не знаю, какой файл мне нужно связать. Я пробовал libmkl_core.a, libmkl_gnu_thread.a, libmkl_blacs_intelmpi_lp64.a и т. Д. В нем множество файлов: /mkl/lib/intel64/

Тот факт, что существует множество файлов, не означает, что вы должны попробовать каждую библиотеку по очереди.

Чтобы узнать, какая библиотека определяет символы, которые вы хотите, выполните эту команду:

cd /mkl/lib/intel64
nm -A *.a | egrep '[TWBD] (dger_|dgemv_|dgetrf_|dgetri_)$'

Также не забудьте поставить библиотеки на конец вашей строки ссылки, как порядок архивов библиотек в командной строке вопросы.

10

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

Исходя из неполной информации, которую вы предоставили, вполне вероятно, что вам нужны libmkl_intel_lp64.a, libmkl_gnu_thread.a и libmkl_core.a.

Intel MKL имеет встроенный инструмент, который поможет вам выяснить ссылки: / mkl / tools / mkl_link_tool. Этот инструмент также доступен в Интернете: http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor. Используйте этот инструмент, чтобы получить точную линию связи для вашей ситуации.

Вы должны были задать свой вопрос на официальном форуме MKL (http://software.intel.com/en-us/forums/intel-math-kernel-library). Вы получите ответ на этот вопрос в течение нескольких часов, а не дней.

4

У меня была похожая проблема при настройке mingw на windows.

Следующий порядок компоновки библиотек работал для меня с gcc:

  1. mkl_intel_thread
  2. mkl_rt
  3. mkl_core
  4. mkl_intel_lp64

Надеюсь, что это поможет любому, кто застрял в этой проблеме.

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