Подтвердить что ты не робот

Clang: error:: errorunsupported опция '-fopenmp' на Mac OSX El Capitan building XGBoost

Я пытаюсь создать XGBoost пакет для Python после эти инструкции:

Вот полное решение использовать компиляторы с поддержкой OpenMP для установки XGBoost. Получите gcc-5.x.x с поддержкой openmp с помощью brew install gcc --without-multilib. (brew является фактическим стандартом apt-get на OS X. Поэтому установка HPC отдельно не рекомендуется, но она должна работать.):

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

Эта ошибка происходит именно в команде make -j4.

Поиск beforenad, я пробовал эти два решения (1 и 2), безрезультатно, за исключением части для установки другого 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
4b9b3361

Ответ 1

Вы установили gcc с помощью Homebrew, но ошибка указана с clang. Это просто означает, что ваш компилятор по умолчанию все еще указывает на clang вместо вновь установленного gcc. Если вы прочтете комментарии в Makefile, вы увидите следующие строки:

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

и в вашем случае вы не хотите, чтобы система была одной.
Примечание: gcc для системных точек 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

Вместо этого укажите эти переменные на что-то в /usr/local/bin, например:

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

и аналогичные для двух других переменных, CXX и MPICXX, например:

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

Ответ 2

Сэр, возможно, вы должны использовать

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

вместо

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

в соответствии с разделом "Build On OSX" создать документ

Ответ 3

Чтобы решить эту проблему, я сделал следующее: я понял, что у меня установлен gcc 6, поэтому я побежал:

export CC=gcc-6

Но он не срабатывал сам по себе, поэтому мне также пришлось:

export CXX=g++-6

Это решило это для меня. Я нахожусь в Macbook Pro с MacOS Sierra. Вы также можете внести эти изменения непосредственно в XGBoost Makefile, если хотите. Для получения дополнительной информации об этом: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_on_Mac_OSX?lang=en