我正在使用 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 的 openmp 库(http://openmp.llvm.org/)但我没有在其中看到 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