omp.h nicht gefunden, OS X Yosemite nicht verwenden neueste gcc-version
Ich versuche zu bauen GraphChi auf OS X Yosemite, aber bekomme die folgende Fehlermeldung:
fatal error: 'omp.h' file not found
Dieser Frage - Wie omp.h in OS X? - ich habe gelernt, dass Yosemite nutzt Clang anstelle von gcc, die keine omp.h.
$ which gcc
/usr/bin/gcc
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
Als Nächstes habe ich installiert gcc via Homebrew
$ brew info gcc
gcc: stable 4.9.2 (bottled)
http://gcc.gnu.org
/usr/local/Cellar/gcc/4.9.2_1 (1092 files, 177M)
Built from source with: --without-multilib
und aktualisiert $PATH
einschließen, um den Pfad zu der neuen gcc-version
$ echo $PATH
/usr/local/Cellar/gcc/4.9.2_1:usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
jedoch gcc -v
und which gcc
immer noch auf die alte version und Gebäude GraphChi immer noch nicht funktionieren, wegen der fehlenden omp.h-Datei
Weiß jemand, was ich sonst noch tun müssen?
Update
locate omp.h
zurückgegeben:
/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/lib/gcc/i686-apple-darwin11/4.2.1/include/omp.h
/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.1.0/4.9.2/include/omp.h
/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2/include/omp.h
meine ~/.profile
:
export PATH=/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.1.0/4.9.2/include:/usr/local/Cellar/gcc/4.9.2_1/bin:usr/local/bin:/opt/local/bin:/opt/local/sbin:$PATH
Versuchen
Auch, wenn
Ich habe bereits erneut instanziiert mein terminal, deshalb ist der Weg bereits zeigen auf das richtige Verzeichnis
export PATH=/usr/local/Cellar/gcc/4.9.2_1/bin:$PATH
Ich habe versucht Auffinden von omp.h und fügte hinzu, seine Lage zu $PFAD, aber es ist immer noch nicht zu helfen. Ich bin der Bearbeitung der Pfad in ~/.Profil, ist das richtig oder macht es einen Unterschied, wo ich dies tun?
locate "omp.h"
. Wenn Sie noch nicht konfiguriert locate
ich empfehlen, es zu tun -- es dauert eine minute oder so, aber Sie werden finden genau, wo es ist, also können Sie hinzufügen, dass zu Ihrem Weg.Auch, wenn
gcc -v
noch Punkte für die alte version, Bearbeiten Sie Ihre ~/.bashrc
und instanziieren Ihres Terminals.Ich habe bereits erneut instanziiert mein terminal, deshalb ist der Weg bereits zeigen auf das richtige Verzeichnis
export PATH=/usr/local/Cellar/gcc/4.9.2_1/bin:$PATH
Ich habe versucht Auffinden von omp.h und fügte hinzu, seine Lage zu $PFAD, aber es ist immer noch nicht zu helfen. Ich bin der Bearbeitung der Pfad in ~/.Profil, ist das richtig oder macht es einen Unterschied, wo ich dies tun?
InformationsquelleAutor Stephanie Embgen | 2015-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich das Problem gelöst mit Installation von
gcc
mit homebrew:und bauen dann den source-code mit
InformationsquelleAutor shrx
Sobald Sie installiert ist gcc-4.9 mit homebrew, wird es automatisch in Ihrem Pfad. Zu OpenMP verwenden, die Sie gerade brauchen, um sicherzustellen, dass Sie mit den neu installierten gcc-4.9 und es wird in der Lage sein zu finden, omp.h.
Im Fall von GraphChi, haben Sie zu gehen ändern Sie Zeile 3 der Makefile gcc-4.9. Von dort aus, laufen machen, sollte nur funktionieren. Sie beschreiben diese in Ihre README, aber zumindest die version, die Sie beschreiben, ist die out-of-date https://github.com/GraphChi/graphchi-cpp#problems-compiling-on-mac.
InformationsquelleAutor user2548418
clang
unterstützt kein OpenMP noch. Auchgcc
standardmäßig links zu den Apple LLVM-clang-compiler (nicht der GCC installiert brauen).Stattdessen
gcc-4.9
würde link auf GCC. Ich denke, wenn-fopenmp
angegeben istomp.h
ist automatisch eingeschlossen.Ist es möglich, manuell erstellen Sie eine version von clang mit OpenMP-Unterstützung finden Sie unter http://clang-omp.github.io
InformationsquelleAutor tmlen
Sollten Sie nicht fügen Sie die include-Pfad zu
PATH
; stattdessen geben Sie es alsCFLAGS
einschließlich der-I
option. Sie könnenexport
dieCFLAGS
variable, oder legen Sie es auf der fliege.Je nachdem, wie Sie Sie kompilieren die Dinge, die Sie tun könnten,
Natürlich, in diesem Fall können Sie ihn direkt auf der
gcc
Befehl (als-I/usr/local/....
), aber dieCFLAGS
variable funktioniert auch mitconfigure
(wie konfigurieren Sie oft nicht eine option, um festzulegen, wo Sie suchen sollten für spezifische include-Dateien); wahrscheinlich mitmake
, oder sogar für diejenigen, die die Installation eines Python-Paket:CFLAGS=-I... pip install <some-package>
.Anderen Flaggen, die zu berücksichtigen sind
CXXFLAGS
: C++ - spezifische pre-Prozessor-flagsLDFLAGS
: linker-spezifische flags (z.B.LDFLAGS=-L/some/path/...
für die Verknüpfung mit dynamischen Bibliotheken).CC
: geben Sie den C-compiler zu verwenden. Dies ist ein einfacher Weg, um zu vermeiden, den eingebautengcc
alias fürclang
auf OS X. verwenden Sie EinfachCC=/usr/local/bin/gcc-4 make
oder ähnliches.CXX
: geben Sie den C++ - compiler zu verwenden.InformationsquelleAutor