Mój gcc kompiluje się dobrze, ale clang kończy się niepowodzeniem z następującym komunikatem:
clang -fopenmp=libomp -o main main.c
main.c:5:10: fatal error: 'omp.h' file not found
Zainstalowałem również libomp5
pakiet i zmieniłem flagę na -fopenmp=libomp5
, choć to też nie pomogło:
clang -fopenmp=libomp5 -o main main.c
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
te rekomendacje nie działały.
Byłbym wdzięczny za wskazówki dotyczące instalowania niezbędnych pakietów 16.04 i przekazywania odpowiednich flag.
Odpowiedzi:
Miałem ten sam problem.
Naprawiono to w Ubuntu 16.10
Następnie
Również
Pracuje.
GCC i Clang używają różnych bibliotek wykonawczych OpenMP: odpowiednio libgomp i libomp.
Środowisko wykonawcze Clanga to środowisko wykonawcze LLVM OpenMP, które z kolei opiera się na środowisku wykonawczym Intel OpenMP (który jest oprogramowaniem typu open source). https://www.openmprtl.org/
W moim systemie GCC jest zainstalowany
omp.h
nai
libomp-dev
nienasyconyomp.h
wSą to różne pliki nagłówkowe, które zawierają różne definicje funkcji. Może być w porządku użycie dowolnego pliku nagłówka, na przykład,
omp_get_wtime()
ale ogólnie myślę, że lepiej jest użyć pliku nagłówka, który odpowiada środowisku wykonawczemu, do którego jest podłączony.źródło
sudo apt install libomp.dev
.Wygląda na to, że plik omp.h nie istnieje w systemie PATH . najpierw spróbuj zlokalizować plik omp.h , jeśli nie wiesz, gdzie on jest:
Następnie uruchom to polecenie, aby skompilować kod:
źródło
omp.h
.*.h
to pliki nagłówkowe, dlaczego miałby chcieć dodać je do swojej ścieżki? powinny być/usr/include
na przykład.