Это конфигурация проекта QT:
unix {
INCLUDEPATH += /opt/intel/mkl/include
LIBS += -L/opt/intel/mkl/lib/intel64 \
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_def \
-liomp5 -lpthread -ldl -lm
}
И ошибки
Я связал -lm
флаг, почему?
ОБНОВЛЕНО:
ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$ ./mkl_link_tool -check_mkl_presence
Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v4.0
==========================================================
Unknown mode. Specify -libs, -opts, -env or compilation line
Configuration
=============
MKL version: 11.1
OS: lnx
Architecture: intel64
Compiler: intel_f
Linking: dynamic
Interface layer: lp64
Parallel: yes
OpenMP library: iomp5
ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$ ./mkl_link_tool -check_mkl_presence -libs -opts -env
Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v4.0
==========================================================
Output
======
Compiler option(s):
-I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include
Linking line:
-L/opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread -lm
Environment variable(s):
export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1.0.080/mkl/../compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64:$LD_LIBRARY_PATH;
ubuntu@ubuntu-desktop:/opt/intel/mkl/tools$
UPDATED2:
ubuntu@ubuntu-desktop:/opt/intel/mkl/lib/intel64$ ldd libmkl_core.so
linux-vdso.so.1 => (0x00007fff2b589000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe268d8d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe2689ce000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe26a50c000)
ubuntu@ubuntu-desktop:/opt/intel/mkl/lib/intel64$
Я использовал ldd
Команда, чтобы увидеть, какие библиотеки нужны libmkl_core.so, не показывает библиотеку libm.so или math. Почему в Qt создателе это показывает undefined reference to 'logf'
?
Кроме Intel MKL Link Line Advisor который помогает вам генерировать правильные параметры компиляции и ссылки для gcc
/icc
компилятор, есть еще один предварительный запрос, на который вам, возможно, придется обратить внимание — установка переменных окружения.
Чтобы использовать MKL, вам нужно правильно установить некоторые переменные окружения. Intel предоставила скрипт для упрощения этой настройки. Вы можете добавить одну строку в свой профиль оболочки, как .bash_profile
, Пожалуйста, прочитайте раздел «Начало работы» MKL doc для более подробной информации.
Других решений пока нет …