2014-05-10 42 views
2

我正在开发一个项目,我需要使用clang生成位码,使用opt运行一些优化过程,然后创建可执行文件并测量其硬件计数器。无法将PAPI库与opt llvm链接

我能够通过铛直接使用链接:

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 -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功能。预先感谢您的帮助。

回答

1

显然,您需要将-lpapi添加到最后的clang调用中。链接器怎么知道libpapi?