在macOS Sierra中,启用openmp的xgboost安装始终失败。
来自#include <stdio.h>
#include <string.h>
int main() {
int i,j=0;
char str[10];
strcpy(str,"a,c,e,f");
char tmp[10];
for(i=0;i<strlen(str);i++) {
if(str[i]==',') {
continue;
}
else {
tmp[j++]=str[i];
}
}
printf(" %s",tmp);
return 0;
}
,
我试过了:
cp make / config.mk ./config.mk; make -j4
使用,
https://xgboost.readthedocs.io/en/latest/build.html
失败了,
export CC=/usr/local/Cellar/llvm/4.0.0_1/bin/clang
export CXX=/usr/local/Cellar/llvm/4.0.0_1/bin/clang++
export CXX1X=/usr/local/Cellar/llvm/4.0.0_1/bin/clang++
llvm支持openmp,但它失败了clang-4.0clang-4.0: : warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]warning:
argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
ld: library not found for -lomp
ld: library not found for -lomp
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)
相关问题 Install xgboost on Mac - ld: library not found
但是,clang-omp去了boneyard,并停止使用llvm的OpenMP支持。
我已经深入研究了(ld: library not found for -lomp
选项)
-v
答案 0 :(得分:10)
<强>解决强>
cd /usr/local/lib
ln -s /usr/local/Cellar/llvm/4.0.0_1/lib/libomp.dylib libomp.dylib
llvm安装错过了它的符号链接。
答案 1 :(得分:2)
就我而言,我解决了在-lomp之外添加以下链接器标志的问题:
-Lpath_to_libomp.dylib_folder
或类似的东西
-Llib /
答案 2 :(得分:0)
在我的情况下,我使用的是Homebrew的clang
随附的llvm
版本,而不是出厂时的笔记本电脑随附的版本,它可以正常工作。