Comment inclure les omp.h dans OS X?
Je suis nouveau en C et ont des problèmes à la compilation de mon code dans OS X.
Je code Java beaucoup à la fois dans Eclipse et de l'utilisation du terminal pour compiler mon code. Cependant, maintenant je suis en apprentissage openMP et avoir des ennuis avec elle.
J'ai d'abord téléchargé Xcode pour écrire openMP code mais il ne les reconnaît pas <omp.h>
. Puis j'ai installé g++
. Quand je tape g++ -v
dans le terminal j'obtiens ceci:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Mais quand j'utilise g++ Mesh.cpp -fopenmp
je reçois toujours
Mesh.cpp:4:10: fatal error: 'omp.h' file not found
#include <omp.h>
^
1 error generated.
Puis j'ai essayé d'installer PTP dans mon Eclipse et a obtenu le même problème.
Je pensais qu'il n'y a pas de omp.h
dans mon MacBook j'ai donc cherché et trouvé plusieurs omp.h
dans des dossiers, sous gcc-4.9.1/build/
.
Ici vient le problème. Basé sur le Java expérience, la seule raison pourquoi j'ai le fichier mais ne peut pas l'utiliser, c'est que le Chemin de Classe est faux. Cependant, je n'ai aucune idée de comment faire pour modifier cette configuration en g++, ou dans Xcode, ou dans Eclipse. Mais depuis que j'ai peut inclure des fichiers comme <stdio.h>
et le compiler avec toutes les IDEs, comment ne puis-je pas faire de même avec <omp.h>
?
Autre chose que j'ai remarqué, c'est que la gcc dossier version est 4.9.1
, mais quand je tape gcc -v
dans le terminal j'obtiens le même à taper dans g++ -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Ne devrait pas les informations de version dit quelque chose à propos de 4.9.1
? Tout comme ce que java -version
montre
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
Merci pour la lecture. Toute aide est appréciée.
OriginalL'auteur user3928256 | 2014-09-23
Vous devez vous connecter pour publier un commentaire.
GCC 4.9.1 normalement n'est pas livré avec OS X (en fait pas de GCC fourni avec Xcode). La vôtre doit avoir été installé par un autre moyen, par exemple, Homebrew ou auto-compilation comme décrit ici. Ce que vous êtes probablement manquant est correctement mis en
PATH
variable ou de l'installés compilateur a version suffixe des fichiers binaires, c'est à diregcc-4.9
oug++-4.9
au lieu de simplementgcc
/g++
.@Rubenvb l'a déjà mentionné, Apple liens symboliques le Cliquetis des exécutables avec GCC-comme les noms. Personnellement, je trouve qu'une mauvaise pratique depuis les dernières Clang les versions livrées avec Xcode réagir sur méconnu options de ligne de commande (par exemple GCC frontend spécifiques) avec des erreurs matérielles.
Si vous avez suivi les instructions sur la page du lien, votre compilateur est nommé
g++-4.9
et vous devez ajouter le chemin d'accès, à moins que vous avez installé dans/usr/local/bin
. Aussi, vous devez reconfigurer PTP pour appelerg++-4.9
au lieu deg++
.Merci! Après avoir tapé "export PATH=/usr/gcc-4.9.1/bin:$PATH", je peux utiliser "g++-4.9" maintenant.
OriginalL'auteur Hristo Iliev
Cette commande peut vous aider
C'est la solution pour ceux d'entre vous à l'aide de homebrew.
OriginalL'auteur YIMIN TANG
La
gcc
etg++
commandes ne sont pas ce que vous pensez qu'ils sont avec XCode: Apple pensé que ce serait une bonne idée de se faire passer pour Clang comme GCC pour rendre la transition plus lisse.Clang OpenMP soutien est encore en cours d'élaboration. Si je n'ai pas rater une grande libération de l'encours de fabrication de code, vous aurez besoin pour construire cette version de clang et l'utiliser.
Bien sûr, vous pouvez toujours installer un réel GCC à travers des choses comme homebrew ou macports, qui viendra avec OpenMP soutien.
Ouais, le
gcc
de commande qui vous exécuter est fourni par XCode, et il est juste de Bruit, vraiment. Je n'ai manquer la partie de votre question où vous mentionnez l'installation de GCC 4.9.1. Donc, si vous définissez votre CHEMIN, comme décrit par @Hristo, vous devriez être bien.Mise à jour du lien de site web: Développement de l'activité d'OpenMP soutien dans clang/llvm compilateur a déménagé à http://www.llvm.org. S'il vous plaît obtenir OpenMP-activé clang (OpenMP 3.1 est entièrement pris en charge dans clang/llvm 3.7) et de contribuer à la poursuite de son développement. Ce site web est maintenu pour des fins d'archivage uniquement.
Si vous
brew install gcc
vous pouvez lancer le réel de la gcc en tant quegcc-6
. Sérieusement Apple, c'est un peu bizarre sh...OriginalL'auteur rubenvb
La
omp.h
fichier a été déplacé dans un sous-répertoire. Je l'ai trouvé dans MacPorts et résolu ce problème de compilation par la création d'un lien vers ce fichier:OriginalL'auteur Freeman