jac*_*cky 4 c++ llvm llvm-clang llvm-c++-api
我试图在过去的两天里将LLVM与My C++项目联系起来并且它最终正在工作,但问题是当我使用dump()
方法时它会给出链接器错误我认为问题出在我正在链接的库中,所以我'我将可执行文件链接到所有LLVM库(模块)但没有成功.所以这是LLVM5.0代码库中的一个错误,或者我做错了什么以及我专门谈论LLVM5.0的原因,因为我已经在评论部分中读取了其他地方(LLVM-5.0 Makefile未定义引用失败)没有问题使用LLVM4.0编译相同的代码,当然我搜索了其他解决方案,但没有什么
llvm_test.cpp:
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
llvm::LLVMContext context;
int main(){
llvm::Module*module = new llvm::Module("llvm-module",context);
module->dump();
}
Run Code Online (Sandbox Code Playgroud)
命令:
clang++ -O3 -Wall -std=c++11 `llvm-config --cppflags --ldflags` `llvm-config --libs core --system-libs` toy.cpp
Run Code Online (Sandbox Code Playgroud)
而且我已经链接了所有模块:
clang++ -O3 -Wall -std=c++11 `llvm-config --cxxflags --ldflags` `llvm-config --libs all --system-libs` toy.cpp
Run Code Online (Sandbox Code Playgroud)
编译器: Apple Clang 8.0.0 x86_64
操作系统: mac OS 10.12.5
谢谢你提前帮助
gru*_*czy 10
好的,我查看了llvm的代码,你实际上可以做得更容易.您所要做的就是停止使用dump而是:
module->print(llvm::errs(), nullptr);
Run Code Online (Sandbox Code Playgroud)
这正是dump内部的作用.