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

While compiling openMP programs I get the above error. I am using OS X Yosemite. I first tried by installing native gcc compiler by typing gcc in terminal and later downloaded Xcode too still I got the same error. Then I downloaded gcc through:

$ brew install gcc

Still I'm getting the same error. I did try changing the compiler path too still it shows:

$ which gcc
/usr/bin/gcc

So how do I compile programs with gcc?

5
  • stackoverflow.com/questions/26232432/… Commented Mar 15, 2015 at 11:05
  • I believe that Apple has removed gcc and that what appears to be gcc is a a link back to clang. So you have a few options 1) install gcc yourself 2) install the experimental clang with OpenMP support. Google should be your friend in either case. Commented Mar 16, 2015 at 9:38
  • As fas as installing gcc was concern it did no good.. It showed the same error <omp.h> not found where as a simple Hello World!!! did execute. Will try clang now, bit reluctant though because of its large size.. Commented Mar 16, 2015 at 14:34
  • and nope same error.. <omp.h> not found Commented Mar 17, 2015 at 16:53
  • Possible duplicate of <omp.h> library isn't found in the GCC version (4.2.1) in Mavericks Commented Apr 21, 2016 at 14:15

3 Answers 3

45

EDIT: As of 13 Aug 2017 the --without-multilib option is no longer present in Homebrew and should not be used. The standard installation

brew install gcc

will provide a gcc installation that can be used to compile OpenMP programs. As below it will be installed into /usr/local/bin as gcc-<version>. The current gcc version available from Homebrew (as of writing) will install as gcc-8. You can compile programs with OpenMP support using it via

gcc-8 -fopenmp hello.c

Alternatively you could put an alias in your .bashrcfile as

alias gcc='gcc-8'

and then compile using

gcc -fopenmp hello.c

Note: I'm leaving the original post here in case it is useful to somebody.

The standard gcc available on OS X through XCode and Clang doesn't support OpenMP. To install the Homebrew version of gcc with OpenMP support you need to install it with

brew install gcc --without-multilib

or as pointed out by @Mark Setchell

brew reinstall gcc --without-multilib

This will install it to the /usr/local/bin directory. Homebrew will install it as gcc-<version> so as not to clobber the gcc bundled with XCode.

Sign up to request clarification or add additional context in comments.

6 Comments

What does the --without-multilib flag mean?
@cullub It's used to build gcc without support for both 32 and 64 bit systems. It is a requirement with Homebrew to add OpenMP support.
I'm pretty sure the --without-multilib flag is no longer required. I used OpenMP in January of this year and do not remember using this flag. Can anyone verify this?
@Jason I was getting errors compiling C++ code with OpenMP until I brew upgrade'd my gcc to gcc-7.1. Everything works fine now with g++-7 hello.cpp -fopenmp, and I didn't have use the --without-multilib flag.
Running brew reinstall gcc --without-multilib now gives Warning: gcc: this formula has no --without-multilib option so it will be ignored!
|
2

I finally did some research and I finally came across a solution here: <omp.h> library isn't found in the GCC version (4.2.1) in Mavericks.

  1. I got a new gcc complier from http://hpc.sourceforge.net/
  2. Then I placed a new executable folder by $ sudo tar -xvf gcc-4.9-bin.tar -C /
  3. Later I switched to it by export PATH=/usr/local/bin:$PATH that seemed to do the trick!

1 Comment

You only need to do step 3, as you have already installed GCC from Homebrew. However, the default installation has a bug. Kavanai4's answer is correct.
0

The question is 8 years old, but I'm writing this down for new users like me who encountered the same error. workaround is to give the location of the omp.h file instead of #include <omp.h>.

#include "/Volumes/Macintosh HD/opt/homebrew/Cellar/libomp/17.0.5/include/omp.h"

you can include the location omp.h in your pc.

Please correct me if I'm wrong.

2 Comments

Isn't /opt a hard link to /Volumes/Macontosh HD/opt? And can't you configure the build to pass the appropriate -I rather than using an absolute path?
Thanks, Paul for your suggestion. I'm running Sonoma 14.1.1 and M2 chip. Tried all the workarounds suggested online and the only thing that worked was giving the absolute path that seemed to recognize the omp.h without giving an error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.