Как к программе OpenMP компилятора с помощью лязга?

Мой 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 определенных пакетов и передаче соответствующих флагов.

9
задан 13 April 2017 в 23:44

2 ответа

У меня была та же проблема.

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() но в целом я думаю, что, вероятно, лучше использовать заголовочный файл, который соответствует времени выполнения, которое связано с.

15
ответ дан 23 November 2019 в 04:51

Это кажется , файл omp.h не существует в Вашей системе ПУТЬ . во-первых попытайтесь расположиться файл omp.h , если Вы не знаете, где это:

find / -name 'omp.h' -type f

И затем выполненный эта команда для компиляции кода:

clang -o main main.c -I/path/to/omp/folder
2
ответ дан 23 November 2019 в 04:51

Другие вопросы по тегам:

Похожие вопросы: