web-dev-qa-db-ja.com

clang:error::error unsupported option '-fopenmp' on Mac OSX El Capitan building XGBoost

私はビルドしようとしています XGBoost パッケージPython以下 これらの指示

OpenMP対応コンパイラを使用してXGBoostをインストールする完全なソリューションを次に示します。 brew install gcc --without-multilibによるopenmpサポートを使用してgcc-5.x.xを取得します。 (brewはOS Xのapt-getの事実上の標準です。したがって、HPCを個別にインストールすることは推奨されませんが、動作するはずです。):

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost; cp make/config.mk ./config.mk; make -j4

このエラーは、make -j4コマンドで正確に発生します。

前に検索して、私はこれらの2つの解決策( 12 )を試しましたが、すべてを台無しにすることを恐れて別のgccをインストールする部分を除いて、役に立ちませんでした。

以下はmake設定ファイルです。疑わしいものはありません。

#-----------------------------------------------------
#  xgboost: the configuration compile script
#
#  If you want to change the configuration, please use the following
#  steps. Assume you are on the root directory of xgboost.
#  First copy the this file so that any local changes will be ignored by git
#
#  $ cp make/config.mk .
#
#  Next modify the according entries, and then compile by
#
#  $ make
#
#  or build in parallel with 8 threads
#
#  $ make -j8
#----------------------------------------------------

# choice of compiler, by default use system preference.
# export CC = gcc
# export CXX = g++
# export MPICXX = mpicxx

# the additional link flags you want to add
ADD_LDFLAGS =

# the additional compile flags you want to add
ADD_CFLAGS =

# Whether enable openmp support, needed for multi-threading.
USE_OPENMP = 1

# whether use HDFS support during compile
USE_HDFS = 0

# whether use AWS S3 support during compile
USE_S3 = 0

# whether use Azure blob support during compile
USE_Azure = 0

# Rabit library version,
# - librabit.a Normal distributed version.
# - librabit_empty.a Non distributed mock version,
LIB_RABIT = librabit.a

# path to libjvm.so
LIBJVM=$(Java_HOME)/jre/lib/AMD64/server

# List of additional plugins, checkout plugin folder.
# uncomment the following lines to include these plugins
# you can also add your own plugin like this
#
# XGB_PLUGINS += plugin/example/plugin.mk
23
srodriguex

Homebrewでgccをインストールしましたが、clangからのエラーです。これは、デフォルトのコンパイラが、新しくインストールされたclangではなく、gccを指すことを単に意味するはずです。 Makefileのコメントを読むと、次の行が表示されます。

# choice of compiler, by default use system preference.
# export CC = gcc
# export CXX = g++
# export MPICXX = mpicxx

そして、あなたの場合、あなたはシステムのものが欲しくありません。
注:システムのgccclangを指します。

$ which gcc
/usr/bin/gcc
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-Apple-darwin15.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

代わりに、これらの変数を/usr/local/bin内の何かにポイントします。例:

$ export CC=/usr/local/bin/gcc

他の2つの変数CXXMPICXXについても同様です。例:

$ export CC=/usr/local/bin/gcc;CXX=/usr/local/bin/g++;MPICXX=/usr/local/bin/mpicxx
32
user707650

サー、おそらくあなたが使用する必要があります

cd xgboost; cp make/minimum.mk ./config.mk; make -j4

の代わりに

cd xgboost; cp make/config.mk ./config.mk; make -j4

build document の「Build On OSX」セクションに従って

9

この問題を解決するために、次のことを行いました。gcc 6がインストールされていることに気付いたので、実行しました。

export CC=gcc-6

しかし、それだけでは機能しなかったので、次のこともしなければなりませんでした。

export CXX=g++-6

これで解決しました。 macOS Sierraを実行しているMacbook Proにいます。必要に応じて、XGBoostのMakefileでこれらの変更を直接行うこともできます。これについての詳細: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_on_Mac_OSX?lang=en