2016-05-27 12 views
1

Ich versuche, mehrere O-Dateien mit gfortran verknüpfen. Ich habe die Dateien kompiliert wie so (in einer Make-Datei):gfortran Linking Flag für Openmp

gfortran -c -fopenmp file1.f 
gfortran -c -fopenmp file2.f 

Nun möchte Ich mag die Dateien mit einer Option für OpenMP verknüpfen. Ich weiß, mit den Intel-Compiler die Verknüpfung Flag -liomp5 ist, so dass die Dateien mit den Intel-Compiler verknüpfen würde man nennen:

ifort -o a.out file1.o file2.o -liomp5 

Dies ist offensichtlich nicht der richtige Flag für die GNU-Compiler. Was ist das korrekte OpenMP Link-Flag für gfortran?

+0

Mit Intel Sie mit '-openmp' verknüpfen sollte oder' -qopenmp', Ihr '-liomp5' das Äquivalent von' -lgfortran' ist. –

Antwort

1

Es ist -fopenmp auch:

gfortran -fopenmp -o a.out file1.o file2.o 
+0

Danke Alexander. Da ich versuche, mex-Dateien für Matlab zu verknüpfen, funktioniert es immer noch nicht ganz, aber ich bin mir ziemlich sicher, dass das ein separates Problem ist. Ich werde meine Frage bearbeiten, um dies zu reflektieren. –

+0

Auf den zweiten Gedanken könnte es als separate Frage besser sein. –

+0

@HH, verlinke einfach gegen 'libgomp', indem du' -lgomp' hinzufügst. Das macht "-fopenmp" für die Verknüpfungsphase. Das '-fopenmp 'wird fehlschlagen, wenn Matlab den Compiler nicht verwendet, um die Objektdateien zu verknüpfen. –