Мой gcc компилируется хорошо, но clang завершается ошибкой со следующим сообщением:
clang -fopenmp=libomp -o main main.c
main.c:5:10: fatal error: 'omp.h' file not found
Я также установил libomp5
пакет и изменил флаг на -fopenmp=libomp5
, хотя это тоже не помогло:
clang -fopenmp=libomp5 -o main main.c
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
эти рекомендации не сработали.
Был бы признателен за подсказки по установке необходимых 16.04 конкретных пакетов и передаче соответствующих флагов.
Ответы:
У меня такая же проблема.
Исправлено с помощью Ubuntu 16.10
затем
Также
работает.
GCC и Clang используют разные библиотеки времени выполнения OpenMP: libgomp и libomp соответственно.
Среда выполнения Clang - это среда выполнения LLVM OpenMP, которая, в свою очередь, основана на среде выполнения Intel OpenMP (с открытым исходным кодом). https://www.openmprtl.org/
На моей системе GCC установлен
omp.h
наи
libomp-dev
набросилсяomp.h
наЭто разные заголовочные файлы, которые содержат разные определения функций. Может быть хорошо использовать любой заголовочный файл, например,
omp_get_wtime()
но в целом я думаю, что, вероятно, лучше использовать заголовочный файл, который соответствует времени выполнения, с которым связан.источник
sudo apt install libomp.dev
.Кажется, файл omp.h не существует в вашей системной переменной PATH . во-первых, попробуйте найти файл omp.h, если вы не знаете, где он находится:
А затем выполните эту команду для компиляции вашего кода:
источник
omp.h
.*.h
такое заголовочные файлы, зачем ему добавлять их в свой путь? они должны быть,/usr/include
например.