【问题标题】:Linking against libgomp.so inside LLVM在 LLVM 中链接 libgomp.so
【发布时间】:2023-03-17 02:23:01
【问题描述】:

我正在使用 LLVM 使用 parseInputIR(inputIR) 函数读取 IR 文件;编译它们并执行它们,类似于 llvm 的 Kaleidoscope 示例中所做的。 但是,这样做时我收到错误,抱怨 omp_get_num_procs 不知道如下

clang/bin/Kaleidoscope-Orc-fully_lazy_with_recompile_try prime_toy/main.bc prime_toy/prime_number.bc LLVM 错误:程序使用了无法解析的外部函数“omp_get_num_procs”!

其中一个 IR 文件包含 omp 指令,因此必须链接到 omp 库。我应该使用 dlsym 在 llvm 中添加这种支持。

我的问题是关于 libgomp 版本的 - 我想我需要使用来自 llvm (http://openmp.llvm.org/) 的 openmp 库 但我没有在其中看到 omp_get_num_procs(只有带后缀的),我想知道为什么。

nm llvm_openmp/openmp/runtime/build/runtime/src/libgomp.so | grep    omp_get_num_procs
0000000000067369 t __kmp_api_omp_get_num_procs
0000000000068180 t __kmp_api_omp_get_num_procs_
0000000000067369 t __kmp_api_omp_get_num_procs_10_alias
0000000000068180 t __kmp_api_omp_get_num_procs__10_alias
0000000000067369 T omp_get_num_procs@@VERSION
0000000000067369 T omp_get_num_procs@OMP_1.0
0000000000068180 T omp_get_num_procs_@@VERSION
0000000000068180 T omp_get_num_procs_@OMP_1.0

【问题讨论】:

    标签: compilation clang llvm libgomp


    【解决方案1】:

    您看到的后缀(以“@”开头)用于 ELF 符号版本控制,https://sourceware.org/binutils/docs/ld/VERSION.html,很可能您不必特别关心,因此您可以在心理上“将它们剥离”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多