2017-09-15 85 views
0

我想用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庫已正確編譯,我可以運行它的測試正常。 我已經看過testing_dgesv_mic.cpp示例編譯和使用相同的包含和鏈接的方式,但在我的情況下,我得到了上述錯誤。

我已經加入我的.bashrc文件如下,以獲得英特爾編譯器和庫ENVIROMENTAL變量:

#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 

任何想法可能會導致國際刑事法院不能包括‘複雜’文件?

文件複雜真的存在 「/opt/intel/compilers_and_libraries_2017.2.174/linux/compiler/include/complex」

ICC vesrion是:

[[email protected] results]$ icc -v 
icc version 17.0.2 (gcc version 4.4.7 compatibility) 

magmamic版本magmamic-1.4。 0

編輯:刪除不必要的代碼註釋 編輯2:添加版本信息。

+0

#include_next 與英特爾C++編譯器17.0 Update 2一起提供的複雜頭文件正在尋找下一個可用的複雜頭文件(尋找GNU提供的頭文件)。你使用的是哪個版本的GCC? –

+0

我使用icc(英特爾編譯器)17.0.2版本 –

+0

以及您正在運行ICC的GCC兼容模式。您可以通過運行以下命令獲得此信息: icc -v –

回答

0

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#p4442