저는 최근 MinGW에서 LLVM을 실험하기 시작했습니다. Kaleidoscope 자습서를 읽었으나 지금은 외부 함수에 문제가 있습니다. 모드는 * 모듈입니다LLVM extern functions
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);
및 CTX는 LLVMContext &입니다 :
I는 다음과 같이 외부 함수를 선언하고있다.
이 경우 모든 것이 제대로 작동합니다. 나는 함수 선언하는 경우 그러나 :
extern "C"
double my_cubic_transform(double x) {
return x*x*x;
}
을 그리고 "my_cubic_transform"을 사용하여 "죄"를 사용하는 (무엇을 변경하지 않고) SinFunction 선언을 변경 한 다음 내가 얻을 :
LLVM ERROR: Program used external function 'my_cubic_transform' which could not be resolved
변경 내 makefile에 "-g"옵션을 포함시키지 마십시오. 만화경 자습서에서는 LLVM에서 가능하다고 제안했습니다 (적어도 JIT는 사용하고 있습니다). 그래서 내가 뭔가 잘못하고있는거야? 그렇다면, 무엇?
그래, 아마 windows 이외의 어떤 플랫폼 :) – jer
그건 이상한데, 우분투에있어 같은 오류가 발생했습니다. – altschuler