1
我想問一下如何以正確的方式將自己的C++函數調用到LLVM中。如何在LLVM中調用函數
我已經編寫簡單的函數:
void writeSomething() {
std::cout << "Awesome" << std::endl;
}
在LLVM我試圖註冊該功能。我創建了它的外部鏈接。只是調用該函數
// Void type
llvm::FunctionType* fccType =
llvm::FunctionType::get(
llvm::Type::getVoidTy(getGlobalContext()), false
);
// External - c++
Function *fcc = (Function*) module->getOrInsertFunction("writeSomething",
fccType
);
// Call
std::vector<Value*> emptyArgs;
CallInst::Create(fcc, makeArrayRef(emptyArgs));
LLVM輸出是 (//註釋是我輸入我該如何理解輸出)
// External linkage
declare void @writeSomething()
define internal void @main() {
entry:
// Call my function
call void @writeSomething()
ret void
}
程序與消息結束:LLVM錯誤:計劃使用的外部函數'writeSomething'無法解決!
我添加了extern「C」,它確實有效!非常感謝你。 –