如何解决在Linux机器上安装“ xgboost”时出错-R 4.0.2
R版本:4.0.2
操作系统:Linux
包裹名称:xgboost
gcc版本:4.8.5
我尝试了以下命令:
install.packages('xgboost')
它给了我以下错误:
Installing package into ‘/home/<username>/R/x86_64-pc-linux-gnu-library/4.0’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/xgboost_1.1.1.1.tar.gz'
Content type 'application/x-gzip' length 929560 bytes (907 KB)
==================================================
downloaded 907 KB
* installing *source* package ‘xgboost’ ...
** package ‘xgboost’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking Backtrace lib...
checking for backtrace in -lexecinfo... no
checking endian...
configure: creating ./config.status
config.status: creating src/Makevars
** libs
Makevars:17: -DXGBOOST_STRICT_R_MODE=1
Makevars:17: -DDMLC_LOG_BEFORE_THROW=0
Makevars:17: -DDMLC_ENABLE_STD_THREAD=1
Makevars:17: -DDMLC_DISABLE_STDIN=1
Makevars:17: -DDMLC_LOG_CUSTOMIZE=1
Makevars:17: -DXGBOOST_CUSTOMIZE_LOGGER=1
Makevars:17: -DRABIT_CUSTOMIZE_MSG_
Makevars:17: -DRABIT_STRICT_CXX98_
g++ -std=gnu++11 -I"/usr/local/lib64/R/include" -DNDEBUG -I./include -I./dmlc-core/include -I./rabit/include -I. -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I/usr/local/include -fopenmp -DDMLC_CMAKE_LITTLE_ENDIAN=1 -pthread -fpic -g -O2 -c xgboost_R.cc -o xgboost_R.o
g++ -std=gnu++11 -I"/usr/local/lib64/R/include" -DNDEBUG -I./include -I./dmlc-core/include -I./rabit/include -I. -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I/usr/local/include -fopenmp -DDMLC_CMAKE_LITTLE_ENDIAN=1 -pthread -fpic -g -O2 -c xgboost_custom.cc -o xgboost_custom.o
gcc -std=gnu99 -I"/usr/local/lib64/R/include" -DNDEBUG -I./include -I./dmlc-core/include -I./rabit/include -I. -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I/usr/local/include -fpic -g -O2 -c xgboost_assert.c -o xgboost_assert.o
gcc -std=gnu99 -I"/usr/local/lib64/R/include" -DNDEBUG -I./include -I./dmlc-core/include -I./rabit/include -I. -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I/usr/local/include -fpic -g -O2 -c init.c -o init.o
g++ -std=gnu++11 -I"/usr/local/lib64/R/include" -DNDEBUG -I./include -I./dmlc-core/include -I./rabit/include -I. -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_ -I/usr/local/include -fopenmp -DDMLC_CMAKE_LITTLE_ENDIAN=1 -pthread -fpic -g -O2 -c amalgamation/xgboost-all0.cc -o amalgamation/xgboost-all0.o
In file included from amalgamation/../src/metric/elementwise_metric.cc:7:0,from amalgamation/xgboost-all0.cc:14:
amalgamation/../src/metric/elementwise_metric.cu: In constructor ‘xgboost::metric::EvalEWiseBase<Policy>::EvalEWiseBase() [with Policy = xgboost::metric::EvalRowRMSE]’:
amalgamation/../src/metric/elementwise_metric.cu:315:3: error: converting to ‘xgboost::metric::ElementWiseMetricsReduction<xgboost::metric::EvalRowRMSE>’ from initializer list would use explicit constructor ‘xgboost::metric::ElementWiseMetricsReduction<EvalRow>::ElementWiseMetricsReduction(EvalRow) [with EvalRow = xgboost::metric::EvalRowRMSE]’
EvalEWiseBase() = default;
^
amalgamation/../src/metric/elementwise_metric.cu: In lambda function:
amalgamation/../src/metric/elementwise_metric.cu:352:73: note: synthesized method ‘xgboost::metric::EvalEWiseBase<Policy>::EvalEWiseBase() [with Policy = xgboost::metric::EvalRowRMSE]’ first required here
.set_body([](const char* param) { return new EvalEWiseBase<EvalRowRMSE>(); });
^ ^
/usr/local/lib64/R/etc/Makeconf:174: recipe for target 'amalgamation/xgboost-all0.o' failed
make: *** [amalgamation/xgboost-all0.o] Error 1
ERROR: compilation failed for package ‘xgboost’
* removing ‘/home/<username>/R/x86_64-pc-linux-gnu-library/4.0/xgboost’
The downloaded source packages are in
‘/tmp/RtmppCbQFu/downloaded_packages’
Warning message:
In install.packages("xgboost") :
installation of package ‘xgboost’ had non-zero exit status
有人可以帮我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。