LINUX.ORG.RU

[openmp][gcc] Предупреждение

 ,


0

0
предупреждение: директива #pragma omp parallel проигнорирована

Что это значит? И как с этим бороться?

Флаги компиляции:

-Wall -Wextra -pedantic -pedantic-errors -Wformat=2
-Winit-self -Wstrict-overflow=5 -Wcast-qual -Wcast-align 
-Wwrite-strings -Wconversion -Waggregate-return

Пример кода:

#include <stdio.h>
#include <omp.h>
 
#define N 100
 
int main()
{
  double a[N], b[N], c[N];
  int i;
  omp_set_dynamic(0);      
  omp_set_num_threads(10); 
 
  for (i = 0; i < N; i++)
  {
      a[i] = i * 1.0;
      b[i] = i * 2.0;
  }
 
#pragma omp parallel shared(a, b, c) private(i)
  {
#pragma omp for
    for (i = 0; i < N; i++)
      c[i] = a[i] + b[i];
  }
  printf ("%f\n", c[10]);
  return 0;
}

Понижать уровень варнингов нельзя, они мне нужны и очень жизнь облегчают.

Кстати, в последнем случае достаточно можно ничего не писать. Переменная цикла автоматом 'private', а все остальное — шаред.

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

Фо флагах компиляции должно быть -fopenmp, а линковщику еще нужно -lgomp

Спасибо большое, про -fopenmp я не знал, теперь -Werror смогу вернуть.

plambir
() автор топика
Ответ на: комментарий от annoynimous

Никто не гарантирует, что и завтра будет работать.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.