我刚刚开始使用llvm。
这是我正在尝试编译的代码:
#include <stdio.h>
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/IRBuilder.h"
int main()
{
llvm::LLVMContext& context = llvm::getGlobalContext();
llvm::Module* module = new llvm::Module("top", context);
llvm::IRBuilder<> builder(context);
module->dump( );
}
当我编译时:
llvm-g++ try.cpp -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS `llvm-config --cxxflags --ldflags --libs`
我得到了 a.out 文件。不用担心。
但是,我有兴趣获取 LLVM IR 文件。所以,我用
llvm-g++ try.cpp -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -S -emit-llvm
lli try.s
我收到一条错误消息
LLVM ERROR: Program used external function '_ZN4llvm16getGlobalContextEv' which could not be resolved!
命令 :
llvm-g++ try.cpp -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS `llvm-config --cxxflags --ldflags --libs` -S -emit-llvm
给我留下了几个警告,当我使用 lli 执行生成的 .s 文件时,我得到与以前相同的错误。
非常感谢你的帮助