【问题标题】:Unable to link PAPI library with opt llvm无法将 PAPI 库与 opt llvm 链接
【发布时间】:2014-05-10 19:57:17
【问题描述】:

我正在做一个项目,我需要使用 clang 生成位码,使用 opt 运行一些优化通道,然后创建一个可执行文件并测量其硬件计数器。

我可以通过 clang 直接使用链接:

clang -g -O0 -w -I/opt/apps/papi/5.3.0/include -Wl,-rpath,$PAPI_LIB -L$PAPI_LIB \
    -lpapi /scratch/02681/user/papi_helper.c prog.c -o a.out

但是现在我想在使用 clang 的前端并使用 opt 应用优化通道后链接它。

我正在尝试以下方式:

clang -g -O0 -w -c -emit-llvm -I/opt/apps/papi/5.3.0/include -Wl,-rpath,$PAPI_LIB -L$PAPI_LIB \
    -lpapi /scratch/02681/user/papi_helper.c prog.c -o prog.o

llvm-link prog.o papi_helper.o -o prog-link.o

// run optimization passes
opt -licm prog-link.o -o prog-opt.o

llc -filetype=obj prog-opt.o -o prog-exec.o

clang prog-exec.o

完成上述过程后,我收到以下错误:

undefined reference to `PAPI_event_code_to_name'

它无法解析 papi 函数。提前感谢您的帮助。

【问题讨论】:

    标签: c++ clang llvm papi


    【解决方案1】:

    显然,您需要在最后一次 clang 调用中添加 -lpapi。链接器如何知道 libpapi?

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 1970-01-01
      • 2019-01-31
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2020-06-22
      相关资源
      最近更新 更多