Mon gcc compile bien, mais clang échoue avec le message suivant:
clang -fopenmp=libomp -o main main.c
main.c:5:10: fatal error: 'omp.h' file not found
J'ai également installé le libomp5
package et changé le drapeau en -fopenmp=libomp5
, même si cela n'a pas aidé non plus:
clang -fopenmp=libomp5 -o main main.c
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
clang: error: unsupported argument 'libomp5' to option 'fopenmp='
ces recommandations n'ont pas fonctionné.
Serait reconnaissant des conseils sur l'installation des packages spécifiques 16.04 nécessaires et la transmission des drapeaux correspondants.
Réponses:
J'ai eu le même problème.
Corrigé avec Ubuntu 16.10
alors
Aussi
travaux.
GCC et Clang utilisent différentes bibliothèques d'exécution OpenMP: libgomp et libomp respectivement.
Le runtime de Clang est le runtime LLVM OpenMP qui à son tour est basé sur le runtime Intel OpenMP (qui est open source). https://www.openmprtl.org/
Sur mon système GCC installé
omp.h
àet
libomp-dev
insalléomp.h
àIl s'agit de différents fichiers d'en-tête qui incluent différentes définitions de fonctions. Il peut être correct d'utiliser l'un ou l'autre fichier d'en-tête, par exemple,
omp_get_wtime()
mais en général, je pense qu'il est probablement préférable d'utiliser le fichier d'en-tête qui correspond à l'environnement d'exécution auquel il est lié.la source
sudo apt install libomp.dev
.Il semble que le fichier omp.h n'existe pas dans votre système PATH . essayez d'abord de localiser le fichier omp.h si vous ne savez pas où il se trouve:
Et puis exécutez cette commande pour compiler votre code:
la source
omp.h
.*.h
sont des fichiers d'en-tête, pourquoi voudrait-il les ajouter à son chemin? ils devraient être/usr/include
par exemple.