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
解决。我错过了一步吗?