首页 > 解决方案 > 警告 #3180:无法识别的 OpenMP #pragma

问题描述

我很难在终端上使用 icc 编译器在我的 mac 机器上实现 openMP 代码。我发现以下错误!请帮我纠正错误。

以下代码粘贴如下。它永远不会为 openMP 工作,减少任何一个。编译指示只是无法识别。感谢自己尝试代码来提供帮助。

#include <stdio.h>
#include <omp.h>
int main()
{
#pragma omp parallel for
  {
    for(int i=0;i<3;i++)
      {
        printf("Hello");
      }
  }
  return 0;
}

标签: openmpintelicc

解决方案


要添加到我的评论中,代码的正确版本是

#include <stdio.h>
#include <omp.h>
int main()
{
#pragma omp parallel for
    for(int i=0;i<3;i++)
      {
        printf("Hello");
      }
  return 0;
}

正确的编译器命令行是icc -fopenmp ... -o bla.exe bla.c(假设文件名为bla.c)。请替换...为编译代码所需的其他命令行选项。

更新:英特尔新 OpenMP 编译器的正确编译器命令行是使用 -fiopenmp(需要 -fopenmp-targets=spir64 用于 GPU)。


推荐阅读