0

我刚刚开始使用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 文件时,我得到与以前相同的错误。

非常感谢你的帮助

4

0 回答 0