2016-05-27 2 views
1

Я пытаюсь связать несколько файлов .o с помощью gfortran. Я собрал файлы, как так (в Makefile):gfortran связующий флаг для openmp

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

Теперь я хотел бы, чтобы связать файлы с возможностью OpenMP. Я знаю, с компилятором Intel связующая флаг является -liomp5, так, чтобы связать файлы с компилятором Intel можно было бы назвать:

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

Это, очевидно, не правильный флаг для компилятора GNU. Каков правильный флаг связывания OpenMP для gfortran?

+0

с Intel, вы должны связать с '-openmp' или' -qopenmp', ваш '-liomp5' является эквивалентом' -lgfortran'. –

ответ

1

Это -fopenmp, а также:

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

Спасибо, Александр. Поскольку я пытаюсь связать файлы mex для Matlab, это все еще не совсем работает, но я уверен, что это отдельная проблема. Я отредактирую свой вопрос, чтобы отразить это. –

+0

С другой стороны, это может быть лучше, как отдельный вопрос. –

+0

@HH, просто ссылку на 'libgomp', добавив' -lgomp'. Это то, что '-fopenmp' делает для фазы связывания. '-fopenmp' не будет работать, если Matlab не использует компилятор для связывания объектных файлов. –

Смежные вопросы