Openmp C 编译错误

Openmp C Compilation Error

我是 openmp 和 c 的新手。我正在尝试编译一个基本程序。我有一些问题。有人可以帮助指导我正确的方向吗?谢谢!

#include <omp.h> 
#include <stdio.h>

int main() {

#pragma omp parallel for private(i, a) num_threads(3)  
for (i=0; i<5; i++) 
  {
    a[i] = i + 1; 
    printf(“Thread %d has a value of a = %d for i = %d\n”, 
              omp_get_thread_num(), a[i], i); 
  } /*end of parallel for */ 

}

嗯,获取实际的错误消息会有所帮助...

为了以防万一,您是否在某处声明了 ai?您是否为您的编译器启用了 OpenMP 支持?

我确实在代码中添加了这些并自己编译了它。这是它给出的内容:

#include <omp.h> 
#include <stdio.h>

int main() {
  int a[5], i;
#pragma omp parallel for private(i, a) num_threads(3)  
for (i=0; i<5; i++) 
  {
    a[i] = i + 1; 
    printf("Thread %d has a value of a = %d for i = %d\n", 
              omp_get_thread_num(), a[i], i); 
  } /*end of parallel for */ 

}

结果是

$ gcc -fopenmp sample_omp.c 
$ ./a.out 
Thread 2 has a value of a = 5 for i = 4
Thread 1 has a value of a = 3 for i = 2
Thread 1 has a value of a = 4 for i = 3
Thread 0 has a value of a = 1 for i = 0
Thread 0 has a value of a = 2 for i = 1