我正在尝试使用openmp编译简单代码。
这是代码(文件test.cpp):
int main()
{
double a[100];
#pragma omp parallel for
for (int i = 0; i < 100; ++i) {
a[i] = i;
}
return 0;
}
我使用以下命令编译:
icpc -openmp test.cpp
结果是:
icpc: command line error: option '-openmp' not supported
OS Debian X64
你能帮我吗?
更新:
使用-fopenmp会产生同样的错误。
从这里开始:https://software.intel.com/en-us/node/522690
命令行示例,Linux * 要使用Intel OpenMP库使用一个命令编译和链接(构建)整个应用程序,请在Linux *平台上指定以下英特尔®C++编译器命令:
C源
icc -openmp hello.c
C ++来源
icpc -openmp hello.cpp
UPDATE2:
-qopenmp给出了同样的错误。 我安装了intel system studio,并使用/ opt / intel / bin中的编译器。在PATH中没有任何与英特尔相关的东西。也许我应该为PATH添加一些东西,以便英特尔认识到它可以使用openmp。我试过只添加到PATH / opt / intel / bin。
答案 0 :(得分:1)
-openmp
曾经是在旧版本的英特尔编译器中启用OpenMP支持的选项。在较新版本中,该选项为-qopenmp
。
无论如何,即使最新版本(17.0)也接受-openmp
:
$ icpc -openmp test.cpp
icpc: command line remark #10411: option '-openmp' is deprecated and will be removed in a future release. Please use the replacement option '-qopenmp'
因此,英特尔编译器的设置可能存在问题。作为提示,英特尔编译器倾向于为无法识别的选项发出错误号。确保icpc
确实是英特尔编译器,而不是GCC或别名的包装。
答案 1 :(得分:0)
怎么样
-qopenmp
我认为这是将OpenMP添加到intel编译器的官方方式。
如果您使用的是Windows,请使用:
/Qopenmp