Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RESOLVED] unsupported option '-fopenmp' on Mac OS X #3

Closed
Yorko opened this issue Oct 16, 2016 · 30 comments
Closed

[RESOLVED] unsupported option '-fopenmp' on Mac OS X #3

Yorko opened this issue Oct 16, 2016 · 30 comments

Comments

@Yorko
Copy link

Yorko commented Oct 16, 2016

Is Mac OS X supported?

I'm on 10.12 Sierra and get the "unsupported option '-fopenmp'" error after "make -j"

@guolinke
Copy link
Collaborator

Actually, It is not tested on OSX now. Will fix soon

@Yorko
Copy link
Author

Yorko commented Oct 16, 2016

Maybe it'll work with Clang updated, I'll try.

@chivee
Copy link
Collaborator

chivee commented Oct 17, 2016

hi, @Yorko , we currently doesn't have clear plan to support OSX (but it should have). However, this issue is caused by that OpenMP is needed by lightGBM for building, please refer to https://clang-omp.github.io/ for the instuctions

@chivee
Copy link
Collaborator

chivee commented Oct 17, 2016

I'll close this issue first, please feel free to reopen if the problem still there after installing OpenMP properly.

@chivee chivee closed this as completed Oct 17, 2016
@sooheon
Copy link

sooheon commented Oct 17, 2016

On mac os sierra, installing OpenMPI with with homebrew and following instructions still resulted in same error. Installing using C++11 mode and with C++ MPI bindings (these were flags for the homebrew recipe) did not fix the error.

@chivee
Copy link
Collaborator

chivee commented Oct 17, 2016

hi @sooheon , i'm not quite sure that you are confusing openMP with openMPI(or just an typo) which doesn't needed by lightGBM by default.
since I don't have an sierra , I'm not quite sure that apple clang has openMP supported on sierra. the 10.11 OSX has the clang version accord to ~3.7, and openMP was default supported since 3.8.

if you using gcc as your default compiler on sierra. the build should succeed.

@bartleusink
Copy link

Compiling LightGBM with gcc-6 on OSX works:

brew install cmake gcc
cmake -DCMAKE_CXX_COMPILER=g++-6 CMakeLists.txt
make

@sooheon
Copy link

sooheon commented Oct 17, 2016

Thank you I was indeed confusing OpenMPI and OpenMP

@chivee
Copy link
Collaborator

chivee commented Oct 17, 2016

@bartleusink , thanks for your sharing

@Yorko
Copy link
Author

Yorko commented Oct 17, 2016

@bartleusink Thank you!
For me it finally worked.

If anybody's interested: I had to additionally link brew to gcc so that g++-6 is in path.

sudo chown -R $USER /usr/local/
brew link --overwrite gcc

@Yorko Yorko changed the title unsupported option '-fopenmp' on Mac OS X [RESOLVED] unsupported option '-fopenmp' on Mac OS X Oct 17, 2016
@BeatriceGR
Copy link

@Yorko Hi. I tried doing the brew link --overwrite gcc and got this error
Error: No such keg: /usr/local/Cellar/gcc

do you know why?

@ktorimaru
Copy link

Same problem as BeatricGR! Any ideas?

@guolinke
Copy link
Collaborator

guolinke commented Jul 7, 2017

@BeatriceGR @ktorimaru
Use following command to install gcc in osx:

brew install gcc --without-multilib

@henryiii
Copy link

henryiii commented Sep 25, 2017

By the way, non-Apple LLVM on macOS works just fine, as well. Just use brew install llvm (that'll get 5.0, with OpenMP), and set up the environment for the compiler in /usr/local/opt/llvm.
In Sierra, with Apple Clang based on 3.9, and High Sierra, with Apple Clang based on 4.0, the OpenMP library is disabled on the built-in compiler. (even though the -fopenmp-targets option slipped through!)

@Clovel
Copy link

Clovel commented Nov 8, 2017

Hi !

I'm trying to install gcc --without-multilib too, but the option seems to have disappeared from brew. The command given by @guolinke does'n work any more.

BTW, im on High Sierra, 10.13.1.

Any luck that you guys have a solution ?

Thanks,
Clovel

guolinke pushed a commit that referenced this issue Nov 9, 2017
* add init_score & test cpp and python result consistency

* try fix common.h

* Fix tests (#3)

* update atof

* fix bug

* fix tests.

* fix bug

* fix dtypes

* fix categorical feature override

* fix protobuf on vs build (#1004)

* [optional] support protobuf

* fix windows/LightGBM.vcxproj

* add doc

* fix doc

* fix vs support (#2)

* fix vs support

* fix cmake

* fix #1012

* [python] add network config api  (#1019)

* add network

* update doc

* add float tolerance in bin finder.

* fix a bug

* update tests

* add double torelance on tree model

* fix tests

* simplify the double comparison

* fix lightsvm zero base

* move double tolerance to the bin finder.

* fix pylint

* clean test.sh

* add sklearn test

* remove underline

* clean codes

* set random_state=None

* add last line

* fix doc

* rename file

* try fix test
@piotrek1543
Copy link

piotrek1543 commented Jan 21, 2018

@Clovel after installing gcc --without-multilib try to run gcc specific version compiler:
gcc-7 -fopenmp hello_par.c -o hello_par

@stajahlee
Copy link

@piotrek1543 THANK YOU! Only solution after fighting for hours.

@Jemma1um
Copy link

@Clovel
I can't install with option of "--without-multilib" either.
But it's funny that, after I changed " gcc -fopenmp ...... " to " gcc-7 -fopenmp ......", it doesn't return clang error and works!
@piotrek1543 Thank you!

@tanmayGIT
Copy link

Please have a look at :
https://stackoverflow.com/a/50313990/3465857

@itzzmeanmol
Copy link

Can anyone solve my issue:
clang: error: unsupported option '-fopenmp'

I am totally new to terminal and want to use openmp but I am getting above error; I copied and run all the above commands (as mentioned above) but the problem persists. Currently, I am using high Sierra 10.13.6.

@chivee
Copy link
Collaborator

chivee commented Jul 25, 2018

@itzzmeanmol , we're testing compiler with Clang.

would you give a shot of the latest instruction doc

@brianpenghe
Copy link

brew install gcc --without-multilib

It generated this error:
Error: invalid option: --without-multilib

@robcunha
Copy link

try with only -openmp...

@linonetwo
Copy link

So in cmakelist we should set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -openmp -std=c++17")?

@Yassunaga
Copy link

Yassunaga commented Aug 27, 2019

After installing gcc with
brew install gcc
You can run brew install gcc again and it will show its version.
After that, use
gcc-x -fopenmp file_name.c -o file_name
Replacing the "x" for the version shown in the terminal, using only the first number.

@yinhaosen
Copy link

@Yassunaga it works but why does specifying the version helps lol

@Clovel
Copy link

Clovel commented Sep 21, 2019

@yinhaosen because calling gcc defaults to clang on macOS. You need to call GNU gcc

@ghost
Copy link

ghost commented Sep 25, 2019

Hi,

I have the same problem:

clang: error: unsupported option '-fopenmp'

If I do
brew install gcc:
gcc 9.2.0 is already installed, it's just not linked

gcc-9 -o omp_hello -fopenmp omp_hello.c

-bash: gcc-9: command not found

so
brew link gcc
but

Linking /usr/local/Cellar/gcc/9.2.0... 
Error: Could not symlink bin/gfortran
Target /usr/local/bin/gfortran
already exists. You may want to remove it:
  rm '/usr/local/bin/gfortran'

To force the link and overwrite all conflicting files:
  brew link --overwrite gcc

To list all files that would be deleted:
  brew link --overwrite --dry-run gcc

But I need to use Fortran as well! Could you help me??
Kind regards,
Nico

@brunoamorim13
Copy link

brunoamorim13 commented Sep 28, 2019

After trying to run with gcc-9 I'm getting the following message:

Undefined symbols for architecture x86_64: "std::ios_base::Init::Init()", referenced from: __static_initialization_and_destruction_0(int, int) in cczeen3H.o "std::ios_base::Init::~Init()", referenced from: __static_initialization_and_destruction_0(int, int) in cczeen3H.o "std::cout", referenced from: _main in cczeen3H.o "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from: _main in cczeen3H.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status

What can I do to try and run with the -fopenmp?

@Saroopashree
Copy link

Try compiling your .c file using gcc-6

gcc-6 hello.c -o hello -fopenmp

The above command worked for me in my OSX-10.15.2(Catalina) machine after binging with this problem for days

@lock lock bot locked as resolved and limited conversation to collaborators Apr 18, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests