【问题标题】:Clang OpenMP library not found未找到 Clang OpenMP 库
【发布时间】:2017-03-16 01:44:32
【问题描述】:

我正在尝试使用 OpenMP 构建程序,但我无法让 clang 识别该库。我正在使用更新版本的 clang:

λ clang++ --version
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

我使用的是 OS X 10.10.5。当我尝试编译时,这是我得到的错误消息:

λ clang++ -fopenmp src/maranj_NumberCheck.cpp
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我以为 OpenMP 是在 3.7 之后包含在 Clang 中的,但我在 7.0.2 上,所以我不明白为什么我会遇到这个问题。我见过this question,但那已经超过 3 年了,我认为 OpenMP 还不是 Clang 的一部分。

我应该做些什么不同的事情?

【问题讨论】:

    标签: clang openmp clang++


    【解决方案1】:

    clang 默认尝试将 -fopenmp 与 libgomp 链接,这可能在您的系统中不可用。尝试链接到 libomp 或 libiomp5

    -fopenmp=libomp
    

    -fopenmp=libiomp5
    

    【讨论】:

    • 那些给我clang: error: unsupported argument 'libop' to option 'fopenmp='ld: library not found for -liomp5
    • @NateMara 应该是 libomp。尝试sudo find / -name "libomp*"sudo find / -name "libiomp*" 以查看系统中是否存在这些库。如果不需要,您需要从 here 下载并编译库