web-dev-qa-db-fra.com

clang: error:: errorunsupported option '-fopenmp' sur Mac OSX El Capitan building XGBoost

J'essaie de construire XGBoost package pour Python suivant ces instructions :

Voici la solution complète pour utiliser des compilateurs compatibles OpenMP pour installer XGBoost. Obtenez gcc-5.x.x avec le support openmp par brew install gcc --without-multilib. (brew est la norme de facto d'apt-get sur OS X. Il n'est donc pas recommandé d'installer HPC séparément, mais cela devrait fonctionner.):

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

Cette erreur se produit précisément dans le make -j4 commande.

En recherchant avant, j'ai essayé ces deux solutions ( 1 et 2 ), en vain, sauf pour la partie d'installer un autre gcc par peur de tout gâcher.

Ci-dessous se trouve le fichier de configuration make. Cela n'a rien de suspect.

#-----------------------------------------------------
#  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

Vous avez installé gcc avec Homebrew, mais l'erreur provient de clang. Cela devrait simplement signifier que votre compilateur par défaut pointe toujours vers clang au lieu du gcc nouvellement installé. Si vous lisez les commentaires dans le Makefile, vous verrez les lignes suivantes:

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

et dans votre cas, vous ne voulez pas du système.
Remarque: gcc pour le système pointe vers clang:

$ 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

Au lieu de cela, pointez ces variables vers quelque chose dans /usr/local/bin, par exemple.:

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

et similaire pour les deux autres variables, CXX et MPICXX, par exemple:

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

Monsieur, vous devriez peut-être utiliser

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

au lieu de

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

selon la section "Build On OSX" de document de build

9
Sahan Jayasumana

Pour résoudre ce problème, j'ai fait ce qui suit: j'ai réalisé que j'avais gcc 6 installé, alors j'ai exécuté:

export CC=gcc-6

Mais cela n'a pas fonctionné par lui-même, j'ai donc dû aussi:

export CXX=g++-6

Cela l'a résolu pour moi. Je suis dans un Macbook Pro exécutant macOS Sierra. Vous pouvez également apporter ces modifications directement sur le Makefile de XGBoost si vous le souhaitez. Pour plus d'informations à ce sujet: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_on_Mac_OSX?lang=en

3