2013-10-06 14 views
5

Ich habe eine proprietäre Bibliothek (> 150.000 Zeilen) quantenmechanischen C++ - Codes, die für die Parallellaufung auf OpenMP basiert. Dieser Code wurde verwendet, um mit Xcode 4.6 und seinem echten GCC-Compiler gut zu kompilieren, aber der LLVM-Compiler, der mit Xcode 5 ausgeliefert wird, scheint OpenMP nicht zu unterstützen. Mein Code wird auf einem Mac entwickelt, muss aber auf Nicht-Apple-Hardware wie massiv parallelen Supercomputern portierbar sein, so dass das Umschreiben des Codes keine Option ist. Kennt jemand einen geeigneten Compiler, der verwendet werden kann? Vielen Dank für jede Hilfe.OpenMP-Unterstützung in Xcode 5

+0

Was meinen Sie mit "scheint OpenMP nicht zu unterstützen"? Scheint es wirklich nur so * oder bekommst du tatsächliche Fehlermeldungen, die du hier posten kannst? Und wenn Xcode 5 wirklich nicht mit dem Projekt funktioniert, gibt es Gründe, warum Sie Xcode 4.6 nicht weiter verwenden können? – LearnCocos2D

+0

Ich kann keine Option in den Projekteinstellungen finden, um 'openMP-Unterstützung' zu aktivieren, die in früheren Versionen von Xcode vorhanden war. Ich bekomme eine Warnung: /Users/richard/Develop/QMLib/QMLib.xcodeproj Ungültige C/C++ Compiler in Ziel QMLib: com.apple.compilers.llvmgcc42 – user2851558

+0

Ich denke, ich habe das gleiche Problem seit ich auf Lion Mavericks und XCode 5 aktualisiert Ich habe Eclipse mit C-Projekten benutzt, die unter Mountain Lion und XCode 4.6 gut kompiliert wurden. Jetzt, wenn ich kompiliere, habe ich den Fehler 'fataler Fehler:' omp.h 'Datei nicht gefunden'. Ich suche immer noch nach einer Lösung. Vielleicht werfen Sie einen Blick auf http://hpc.sourceforge.net/ –

Antwort

2

Ich komme aus meinem Kommentar zurück, als ich hpc.sourceforge.net getestet und es funktioniert für mich wie ein Zauber.

einfach untar das Archiv wie erklärt:

sudo tar -xvf gcc-4.8-bin.tar -C/

Aktualisieren Sie Ihre .profile standardmäßig zu verwenden, um die hpc kompilierte Version von gcc, wenn Sie wollen.

Kompilieren Sie Ihr Programm mit der Option -fopenmp und verknüpfen Sie es mit der Option -lgomp.