c++ - ICPC : command line error: option '-openmp' not supported

标签 c++ openmp icc

我正在尝试使用 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

操作系统 Debian X64

你能帮帮我吗?

更新:

使用 -fopenmp 会产生同样的错误。

来自这里:https://software.intel.com/en-us/node/522690

命令行示例,Linux* 要使用英特尔 OpenMP 库通过一个命令编译和链接(构建)整个应用程序,请在 Linux* 平台上指定以下英特尔® C++ 编译器命令:

C源代码

icc -openmp hello.c

C++ 源代码

icpc -openmp hello.cpp

更新 2:

-qopenmp 给出了同样的错误。 我安装了 intel system studio,并使用/opt/intel/bin 中的编译器。在 PATH 中没有与英特尔相关的内容。也许我应该在 PATH 中添加一些东西让英特尔认识到它可以使用 openmp。我试过只添加到 PATH/opt/intel/bin。

最佳答案

-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 的包装器或别名。

关于c++ - ICPC : command line error: option '-openmp' not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40107986/

相关文章:

c++ - 任务 : OpenMP directive name required

fortran - 为什么 OpenMP 原子性和关键性不能给出正确的结果?

c++ - gcc 和 intel 在 redhat 上的 icpc 不识别命名空间 std::literals;

c - 为什么 icc 无法以合理的方式处理编译时分支提示?

c++ - 如何找到派生类的直接父类

c++ - 为什么这个 float 比较会产生错误?

python - 大型数组乘法后,进程亲和性变为 {0}

c - 如何克服icc中的 "existence of vector dependence"

c++ - memcmp 排序

c++ - g++ 4.4.7 -std=gnu++0x 应该编译 "for each"构造吗?