Компиляция с ICC и MAGMAmic не может найти "сложный" системный файл
Я пытаюсь скомпилировать исходный файл с помощью компилятора icc и библиотеки MAGMAmic. Однако я получаю следующую ошибку:
icc -c -o direct.o direct.c -O3 -openmp -DADD_ -Wall -DHAVE_MIC -I/opt/intel/mic/coi/include -I/usr/include/intel-coi -I/opt/intel/compilers_and_libraries_2017.2.174/linux/mkl/include:/opt/intel/compilers_and_libraries_2017.2.174/linux/ipp/include:/opt/intel/compilers_and_libraries_2017.2.174/linux/mkl/include:/opt/intel/compilers_and_libraries_2017.2.174/linux/tbb/include:/opt/intel/compilers_and_libraries_2017.2.174/linux/daal/include -I/home/dslavchev/install/magmamic-1.4.0/include -I/home/dslavchev/install/magmamic-1.4.0/contol
icc: command line remark #10411: option '-openmp' is deprecated and will be removed in a future release. Please use the replacement option '-qopenmp'
In file included from /home/dslavchev/install/magmamic-1.4.0/include/magma_types.h(134),
from /home/dslavchev/install/magmamic-1.4.0/include/magmablas_z.h(17),
from /home/dslavchev/install/magmamic-1.4.0/include/magmablas.h(12),
from /home/dslavchev/install/magmamic-1.4.0/include/magma.h(17),
from direct.c(21):
/opt/intel/compilers_and_libraries_2017.2.174/linux/compiler/include/complex(30): catastrophic error: cannot open source file "complex"
#include_next <complex>
^
Библиотека MAGMAmic скомпилирована правильно, и я могу запустить ее тест в порядке. Я посмотрел на то, как пример test_dgesv_mic.cpp компилирует и использовал те же include и ссылки, но в моем случае я получаю вышеуказанную ошибку.
Я добавил следующее в мой файл.bashrc, чтобы получить переменные среды компиляторов и библиотек Intel:
#for MAGMA mic
export MAGMA_PATH=/home/dslavchev/install/magmamic-1.4.0
source /opt/intel/bin/compilervars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh intel64
Любые идеи, что может привести к невозможности включения ICC "сложный" файл?
Файловый комплекс действительно существует в "/opt/intel/compilers_and_libraries_2017.2.174/linux/compiler/include/complex"
icc vesrion это:
[dslavchev@sl051 results]$ icc -v
icc version 17.0.2 (gcc version 4.4.7 compatibility)
магматическая версия - магмамическая версия 1.4.0
РЕДАКТИРОВАТЬ: Удален ненужный комментарий кода EDIT2: Добавлена информация о версии.
1 ответ
MAGMAmic - это библиотека C++, и ее нельзя использовать непосредственно с кодом C.
Когда icc обнаруживает, что вы хотите скомпилировать файл.C++, он автоматически переключается на icpc (компилятор Intel C++), что, в свою очередь, приводит к указанной выше ошибке.
Решение: либо перейдите на icpc, либо переименуйте файлы в.C++
На этот вопрос ответила отметка на форумах MAGMA. Ссылка: http://icl.cs.utk.edu/magma/forum/viewtopic.php?f=2&t=1587&p=4442