Kaleidoscope
但现在我遇到了外部函数的问题。
我声明的外部函数如下:
const Type* doubleType = Type::getPrimitiveType(ctx, Type::DoubleTyID);
std::vector<const Type*> doubleParams;
doubleParams.push_back(doubleType);
FunctionType* doubleDouble = FunctionType::get(doubleType, doubleParams, false);
Function* SinFunction = Function::Create(doubleDouble, Function::ExternalLinkage, "sin", mod);
在这种情况下,一切正常。
extern "C"
double my_cubic_transform(double x) {
return x*x*x;
}
将SinFunction声明从使用“sin”改为使用“my\u cubic\u transform”(不做任何更改),然后得到:
LLVM ERROR: Program used external function 'my_cubic_transform' which could not be resolved
将makefile更改为包含“-g”选项无效。
万花筒教程建议在LLVM中实现这一点(至少对于我正在使用的JIT是这样)。我做错什么了吗?如果是,什么?