Ошибка компоновщика OpenMP Mac OSX Lion c ++ Неопределенные символы для архитектуры x86_64: & quot; _omp_get_thread_num & quot;

Я не могу найти этот вопрос в Интернете.
Поэтому моя ошибка компоновщика такова: неопределенные символы для архитектуры x86_64: «_omp_get_thread_num ()»

Это мой код:

int nthreads;
int tid;
#pragma omp parallel private(tid)
{
tid = omp_get_thread_num();
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("number of threads: %d\n", nthreads);
}
}

3

Решение

Похоже, вы забыли использовать -fopenmp флаг, указывающий компилятору, что вы хотите использовать openmp, ваш пример прекрасно компилируется как g++ test.cpp -fopenmp -o test на Mac OSX лев

4

Другие решения

Трудно диагностировать такую ​​проблему. Я думаю, что компоновщик не может найти библиотеку. Добавьте libgomp к вашим библиотекам компоновщика.

Вы должны связать библиотеку, чтобы получить объект.

Симуляционная проблема здесь:

http://www.eclipse.org/forums/index.php/m/901477/

и многое другое по интернету. Причина не связана библиотека.

Вы можете сделать это, добавив: -fopenmp

в GCC.

3

По вопросам рекламы [email protected]