Мой gcc компилирует хорошо, но сбои лязга со следующим сообщением:
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 определенных пакетов и передаче соответствующих флагов.
У меня была та же проблема.
sudo apt install libomp-dev
Зафиксированный это с Ubuntu 16.10
//test.c
#include "omp.h"
#include <stdio.h>
int main(void) {
#pragma omp parallel
printf("thread %d\n", omp_get_thread_num());
}
Затем
clang test.c -fopenmp
./a.out
thread 0
thread 5
thread 2
thread 1
thread 7
thread 3
thread 4
thread 6
Также
clant-3.9 test.c -fopenmp
работы.
GCC и Лязг пользуются различными библиотеками времени выполнения OpenMP: libgomp и libomp respectivly.
Время выполнения лязга является временем выполнения OpenMP LLVM, которое в свою очередь основано на времени выполнения Intel OpenMP (который является открытым исходным кодом). https://www.openmprtl.org/
В моей системе установлен GCC omp.h
в
/usr/lib/gcc/x86_64-linux-gnu/6/include/omp.h
и libomp-dev
insalled omp.h
в
/usr/include/omp.h
Это различные заголовочные файлы, которые включают различные функциональные определения. Это может быть хорошо для использования любого заголовочного файла для, например. omp_get_wtime()
но в целом я думаю, что, вероятно, лучше использовать заголовочный файл, который соответствует времени выполнения, которое связано с.
Это кажется , файл omp.h не существует в Вашей системе ПУТЬ . во-первых попытайтесь расположиться файл omp.h , если Вы не знаете, где это:
find / -name 'omp.h' -type f
И затем выполненный эта команда для компиляции кода:
clang -o main main.c -I/path/to/omp/folder