Я только начинаю с 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. Не волнуйтесь.
Но я заинтересован в получении IR-файла LLVM. Итак, я скомпилировал
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, я получаю ту же ошибку, что и раньше.
Большое спасибо за вашу помощь
Задача ещё не решена.