web-dev-qa-db-fra.com

Compiler des programmes OpenMP avec le compilateur gcc sur OS X Yosemite

$ 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?

13
Tejas Belvalkar

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.

42
IKavanagh

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 .

  1. J'ai obtenu un nouveau complicateur gcc de http://hpc.sourceforge.net/
  2. Ensuite, j'ai placé un nouveau dossier exécutable par $ Sudo tar -xvf gcc-4.9-bin.tar -C /
  3. Plus tard, j'y suis passé par export PATH=/usr/local/bin:$PATH Cela semblait faire l'affaire!
2
Tejas Belvalkar