1

我正在尝试根据本指南构建支持 xgboost 的多线程。所以我握拳三步。但是当我运行时:

cd xgboost
make

我收到这条消息:

/Users/user/clang-omp/build/bin/clang++ -c -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -fopenmp -fopenmp -fPIC -o updater.o src/tree/updater.cpp
src/tree/updater.cpp:5:10: fatal error: 'cstring' file not found
#include <cstring>
          ^
1 error generated.
make: *** [updater.o] Error 1

我究竟做错了什么?

系统:Mac OS X 10.10.4

PS 我已经尝试像在这篇文章中那样设置系统变量,但它没有用。

已解决:刚刚在我的 mac 上找到文件“cstring”。有一些变种。我拿了文件夹:/usr/local/Cellar/clang-omp/2015-04-01/libexec/include/c++/v1/ 并设置变量:

export CPLUS_INCLUDE_PATH=/usr/local/Cellar/clang-omp/2015-04-01/libexec/include/c++/v1/:
export C_INCLUDE_PATH=/usr/local/Cellar/clang-omp/2015-04-01/libexec/include/c++/v1/:

这不是故事的结局。又出现了一个错误:

 Undefined symbols for architecture x86_64:
 "__ZNKSs7compareEPKc", referenced from:
  __ZN7xgboost14BoostLearnTask3RunEiPPc in main.o
  __ZN7xgboost7learner12BoostLearner10InitObjGBMEv in main.o
  __ZN7xgboost14BoostLearnTask8InitDataEv in main.o
...

在这篇文章中解决了。所以我只是像这样更正Makefile:

export CC = clang-omp++
export CXX = clang-omp++

它奏效了。

4

0 回答 0