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

标签 python macos gcc xgboost

我正在尝试构建 XGBoost these instructions 之后的 Python 包:

Here is the complete solution to use OpenMP-enabled compilers to install XGBoost. Obtain gcc-5.x.x with openmp support by brew install gcc --without-multilib. (brew is the de facto standard of apt-get on OS X. So installing HPC separately is not recommended, but it should work.):

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

这个错误恰好发生在 make -j4 命令中。

搜索之前,我已经尝试了这两种解决方案( 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

最佳答案

您使用 Homebrew 安装了 gcc,但错误来自 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

与其他两个变量类似,CXXMPICXX,例如:

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

关于python - clang : error: : errorunsupported option '-fopenmp' on Mac OSX El Capitan building XGBoost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36211018/

相关文章:

python - 在循环内修改并附加 pandas 数据框

linux - 如何确定由于新软件包安装而导致的文件系统变化

c - 错误 : initializer element is not computable at load time

python - 替换列表中的子字符串

Python FFmpeg查询rtsp太慢

python - 如何将年龄和性别数据添加到卷积神经网络的图像中?

macos - Intellij中的cmd shift A - Sublimetext中的等效命令?

linux - 在 Bash 中提取部分字符串

c - 如何使用 u-boot 为 ARM 处理器加载应用程序

c++ - 在 gcc 中编译时出错