我试图根据此guide构建支持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
P.S。我已尝试设置系统变量,例如post,但它没有效果。
解决: 刚找到文件&#34; cstring&#34;在我的Mac上。有一些变种。我拿了文件夹:/ 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
...
解决了这个post。 所以我只是纠正Makefile:
export CC = clang-omp++
export CXX = clang-omp++
它起作用了。