Привет У меня есть следующий код, который я компиляции с GCC (> 4.2) с -fopenmp флагом:OpenMP странное поведение
int main(void)
{
#pragma omp parallel for
int i;
for(i=0;i<4;i++) while(1);
return 0;
}
Я получаю SIGSEGV на OSX Lion (версия 1.7.3, LLVM-GCC 4.2.1) и CentOS 6.2. Что я здесь делаю неправильно? Спасибо
Я получаю то же самое, Win7/cygwin, gcc 4.5.0. Я запустил его, хотя gdb: он создает потоки, а затем я получаю «Программный сигнал SIGSEGV, ошибка сегментации. 0x63602726 в omp_get_max_active_levels() '. Он отлично работает без 'while (1)'. Как OpenMP обрабатывает этот бесконечный цикл? –
Используется необъявленная переменная. Но это должно генерировать ошибку компиляции, а не segfault. Но с объявлением 'i' я также получаю segfault, gcc-4.5.1, openSuSE 11.4. –
Я забыл добавить .. int i .. Я написал код в спешке: D. – sfa