我正在进行一个项目,在这个项目中,我只需要使用clang生成bitcode,使用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'它不能解析爸爸的函数。提前感谢您的帮助。
发布于 2014-05-11 17:47:16
显然,您需要将-lpapi添加到最后的clang调用中。不然链接器怎么会知道libpapi的事?
https://stackoverflow.com/questions/23585663
复制相似问题