Компилировать программы OpenMP с помощью gcc-компилятора в OS X Yosemite

$ gcc 12.c -fopenmp
12.c:9:9: fatal error: 'omp.h' file not found
#include<omp.h>
    ^
1 error generated.

При компиляции программ openMP я получаю вышеуказанную ошибку. Я использую OS X Yosemite. Сначала я попытался установить собственный gcc-компилятор, набрав gcc в терминале, а затем загрузил Xcode слишком, но я получил ту же ошибку. Затем я загрузил gcc через:

$ brew install gcc

Тем не менее, я получаю ту же ошибку. Я также пытался изменить путь к компилятору, показывая:

$ which gcc
/usr/bin/gcc

Итак, как мне скомпилировать программы с помощью gcc?

Ответ 1

Стандартный gcc, доступный в OS X до XCode и Clang, не поддерживает OpenMP. Чтобы установить версию gcc с поддержкой OpenMP в Homebrew, вам необходимо установить ее с помощью

brew install gcc --without-multilib

или как указано @Mark Setchell

brew reinstall gcc --without-multilib

Это установит его в каталог /usr/local/bin. Homebrew установит его как gcc-<version>, чтобы не сжимать gcc в комплекте с XCode. Текущая версия gcc, доступная из Homebrew, будет установлена ​​как gcc-4.9. Вы можете скомпилировать программы с поддержкой OpenMP с помощью

gcc-4.9 -fopenmp hello.c

В качестве альтернативы вы можете поместить псевдоним в свой .bashrc файл как

alias gcc='gcc-4.9'

а затем скомпилировать с помощью

gcc -fopenmp hello.c

Ответ 2

Наконец-то я провел некоторое исследование, и я наконец нашел решение здесь: < omp.h > библиотека не найдена в версии GCC (4.2.1) в Mavericks.

  • У меня появился новый gcc-компилятор из http://hpc.sourceforge.net/
  • Затем я поместил новую исполняемую папку $ sudo tar -xvf gcc-4.9-bin.tar -C /
  • Позже я переключился на него export PATH=/usr/local/bin:$PATH, который, казалось, сделал трюк!