llvm 学习笔记 2 : 添加 Pass 与调试

在BackendUtil.cpp 的 void EmitAssemblyHelper::EmitAssembly 函数中, if (PerFunctionPasses)  条件后 new 了自带的 Hello pass. 重新 make 时发生以下错误

make[4]: Entering directory '/home/nightwish/code/GIT/llvm/release/tools/clang/tools/driver'
llvm[4]: Linking Release+Asserts executable clang (without symbols)
/home/nightwish/code/GIT/llvm/release/Release+Asserts/lib/libclangCodeGen.a(BackendUtil.o): In function `clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::BackendAction, llvm::raw_ostream*)':
BackendUtil.cpp:(.text+0x1318): undefined reference to `Hello::Hello()'
collect2: error: ld returned 1 exit status

请教高博之后学长告诉我这是linking时错误,编译是通过了的.问题发生在静态链接时没有这个hello符号.动态链接会生成 .so , 而静态链接生成的是 .a ( a 是什么的缩写?)

错误发生在

llvm/release/tool
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值