1
我正在使用LLVM的ExecutionEngine
來運行模塊。該模塊包含一個名爲blub
的函數,返回5
。在C:LLVM執行引擎找不到我的功能
int blub() {
int x = 5;
return x;
}
這裏是執行「咕嚕咕嚕」我的C++代碼:
// Print out all of the functions, just to see
for (auto& function : M->functions()) {
std::cout << function.getName().str() << std::endl;
}
auto engine = EngineBuilder(std::move(M)).create();
engine->finalizeObject();
using MyFunc = int();
auto func = (MyFunc*)engine->getPointerToNamedFunction("blub");
auto result = func();
std::cout << "result is " << result << std::endl;
應該打印出的所有功能(只是「咕嚕咕嚕」),然後將結果「的名字5 」。
不過,我得到這個錯誤,而不是:
blub
LLVM ERROR: Program used external function 'blub' which could not be resolved!
所以功能確實在模塊中,但它不能被ExecutionEngine
解決。我錯過了一步嗎?