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

いくつかの警告が表示され、結果の .s ファイルを lli で実行すると、以前と同じエラーが発生します。

助けてくれてどうもありがとう

4

0 に答える 0