ld:找不到-lomp的库

时间:2017-06-16 02:27:50

标签: machine-learning llvm xgboost

在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

3 个答案:

答案 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版本,而不是出厂时的笔记本电脑随附的版本,它可以正常工作。