我正在开发一个LLVM插件,并希望通过Clang LLVM驱动程序将其作为插件运行:
clang -Xclang -load -Xclang myPlugin.so ...
起初我遇到了一个类似于这里描述的错误
按照建议使用-D_GLIBCXX_USE_CXX11_ABI=0
标志后,我遇到了以下错误:
error: unable to load plugin 'myPlugin.so': 'myPlugin.so: undefined symbol: _ZNK4llvm12FunctionPass17createPrinterPassERNS_11raw_ostreamERKSs
这个页面暗示可能存在ABI兼容性问题(我并不完全理解)
我的目标是使用GCC或Clang编译该程序,并在系统Clang安装(Ubuntu 16.04,LLVM 3.8)上运行它,而不是从源代码构建Clang / LLVM。
c++filt
无法解码_ZNK4llvm12FunctionPass17createPrinterPassERNS_11raw_ostreamERKNSt7
。 - Vietllvm::FunctionPass::createPrinterPass(llvm::raw_ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
。 - Nik391