$ gcc 12.c -fopenmp
12.c:9:9: fatal error: 'omp.h' file not found
#include<omp.h>
^
1 error generated.
Lors de la compilation des programmes openMP, j'obtiens l'erreur ci-dessus. J'utilise OS X Yosemite. J'ai d'abord essayé en installant le compilateur gcc natif en tapant gcc dans le terminal et j'ai ensuite téléchargé Xcode aussi, j'ai toujours la même erreur. Ensuite, j'ai téléchargé gcc via:
$ brew install gcc
Je reçois toujours la même erreur. J'ai également essayé de changer le chemin du compilateur:
$ which gcc
/usr/bin/gcc
Alors, comment puis-je compiler des programmes avec gcc?
EDIT: Depuis 13 août 2017 l'option --without-multilib
N'est plus présente dans Homebrew et ne devrait pas être utilisé. L'installation standard
brew install gcc
fournira une installation gcc
qui peut être utilisée pour compiler des programmes OpenMP. Comme ci-dessous, il sera installé dans /usr/local/bin
En tant que gcc-<version>
. La version actuelle de gcc disponible chez Homebrew (au moment de l'écriture) s'installera comme gcc-8
. Vous pouvez compiler des programmes avec le support OpenMP en l'utilisant via
gcc-8 -fopenmp hello.c
Vous pouvez également mettre un alias dans votre fichier .bashrc
En tant que
alias gcc='gcc-8'
puis compiler en utilisant
gcc -fopenmp hello.c
Remarque : Je laisse le message d'origine ici au cas où il serait utile à quelqu'un.
Le gcc standard disponible sur OS X via XCode et Clang ne prend pas en charge OpenMP. Pour installer la version Homebrew de gcc avec le support OpenMP, vous devez l'installer avec
brew install gcc --without-multilib
ou comme indiqué par @ Mark Setchell
brew reinstall gcc --without-multilib
Cela l'installera dans le répertoire /usr/local/bin
. Homebrew l'installera en tant que gcc-<version>
Afin de ne pas encombrer le gcc fourni avec XCode.
J'ai finalement fait quelques recherches et j'ai finalement trouvé une solution ici: la bibliothèque <omp.h> n'est pas trouvée dans la version GCC (4.2.1) dans Mavericks .
$ Sudo tar -xvf gcc-4.9-bin.tar -C /
export PATH=/usr/local/bin:$PATH
Cela semblait faire l'affaire!