Xgboost: g++:错误:libgomp.spec:没有这样的文件或目录

创建于 2016-03-22  ·  3评论  ·  资料来源: dmlc/xgboost

嗨伙计,

我正在尝试在我的 window7-64 位机器上安装 xgboost。 它不断遇到这个问题。 不知道我应该怎么做。
我完全按照线程http://xgboost.readthedocs.org/en/latest/build.html 所做的。 并且还将mingw32-make.exe重命名为make。 EXE文件。 我正在使用 TDM-GCC 编译器。 完整的错误信息是:

ar cr libdmlc.a line_split.o recordio_split.o input_split_base.o io.o local_filesys.o data.o recordio.o config.o
make[1]: Leaving directory 'C:/Users/hxu/xgboost/dmlc-core'
g++ -m64 -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude -DDMLC_ENABLE_STD_THREAD=0  -Idmlc-core/include -Irabit/include -openmp -o xgboost  build/cli_main.o build/learner.o build/logging.o build/common/common.o build/c_api/c_api_error.o build/c_api/c_api.o build/data/siple_dmatrix.o build/data/sparse_page_raw_format.o build/data/data.o build/data/simple_csr_source.o build/data/sparse_page_writer.o build/data/sparse_age_source.o build/data/sparse_page_dmatrix.o build/gbm/gbm.o build/gbm/gblinear.o build/gbm/gbtree.o build/metric/multiclass_metric.o build/metric/eementwise_metric.o build/metric/rank_metric.o build/metric/metric.o build/objective/regression_obj.o build/objective/rank_obj.o build/objective/objecive.o build/objective/multiclass_obj.o build/tree/tree_model.o build/tree/updater_colmaker.o build/tree/updater_skmaker.o build/tree/updater_sync.o bild/tree/updater_refresh.o build/tree/updater_histmaker.o build/tree/tree_updater.o build/tree/updater_prune.o dmlc-core/libdmlc.a rabit/lib/librabitempty.a  -pthread -lm  -fopenmp
ar crv lib/libxgboost.a build/learner.o build/logging.o build/common/common.o build/c_api/c_api_error.o build/c_api/c_api.o build/data/simple_dmatrixo build/data/sparse_page_raw_format.o build/data/data.o build/data/simple_csr_source.o build/data/sparse_page_writer.o build/data/sparse_page_source. build/data/sparse_page_dmatrix.o build/gbm/gbm.o build/gbm/gblinear.o build/gbm/gbtree.o build/metric/multiclass_metric.o build/metric/elementwise_mtric.o build/metric/rank_metric.o build/metric/metric.o build/objective/regression_obj.o build/objective/rank_obj.o build/objective/objective.o buildobjective/multiclass_obj.o build/tree/tree_model.o build/tree/updater_colmaker.o build/tree/updater_skmaker.o build/tree/updater_sync.o build/tree/upater_refresh.o build/tree/updater_histmaker.o build/tree/tree_updater.o build/tree/updater_prune.o
g++: error: libgomp.spec: No such file or directory
Makefile:128: recipe for target 'xgboost' failed
mingw32-make: *** [xgboost] Error 1
mingw32-make: *** Waiting for unfinished jobs....
g++ -m64 -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude -DDMLC_ENABLE_STD_THREAD=0  -Idmlc-core/include -Irabit/include -openmp -shared -o lib/libxgboost.dll build/learner.o build/logging.o build/common/common.o build/c_api/c_api_error.o build/c_api/c_api.o build/data/smple_dmatrix.o build/data/sparse_page_raw_format.o build/data/data.o build/data/simple_csr_source.o build/data/sparse_page_writer.o build/data/sparsepage_source.o build/data/sparse_page_dmatrix.o build/gbm/gbm.o build/gbm/gblinear.o build/gbm/gbtree.o build/metric/multiclass_metric.o build/metric/lementwise_metric.o build/metric/rank_metric.o build/metric/metric.o build/objective/regression_obj.o build/objective/rank_obj.o build/objective/objetive.o build/objective/multiclass_obj.o build/tree/tree_model.o build/tree/updater_colmaker.o build/tree/updater_skmaker.o build/tree/updater_sync.o uild/tree/updater_refresh.o build/tree/updater_histmaker.o build/tree/tree_updater.o build/tree/updater_prune.o dmlc-core/libdmlc.a rabit/lib/librabi_empty.a -pthread -lm  -fopenmp
g++: error: libgomp.spec: No such file or directory
Makefile:120: recipe for target 'lib/libxgboost.dll' failed
mingw32-make: *** [lib/libxgboost.dll] Error 1

谢谢,任何帮助表示赞赏。

最有用的评论

@hx364
我发现,这是由于 TDM-GCC 的默认安装没有 openmp 支持。 因此,您可以重新安装 TDM-GCC 并确保检查 gcc 选项并选择openmp ,如下所示。
它解决了我的问题。

blog-tdm-gcc-openmp

所有3条评论

OpenMP 支持需要libgomp ,所以我认为您的编译器可能对 OpenMP 没有很好的支持。

我得到了类似的错误:

g++ -m64 -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iincl
ude -DDMLC_ENABLE_STD_THREAD=0  -Idmlc-core/include -Irabit/include -fopenmp -sh
ared -o lib/libxgboost.dll build/leg++: error: libgomp.spec: No such file or dir
ectory

在 windows x64 上,使用 TDM-GCC 编译器

@hx364
我发现,这是由于 TDM-GCC 的默认安装没有 openmp 支持。 因此,您可以重新安装 TDM-GCC 并确保检查 gcc 选项并选择openmp ,如下所示。
它解决了我的问题。

blog-tdm-gcc-openmp

此页面是否有帮助?
0 / 5 - 0 等级