现在我使用铛建立我的.c文件到.s文件。我已经使用了llvm API修改IR。但是,现在我无法将修改后的IR保存到文件中。我想使用“LLVMWriteBitcodeToFile”,但我找不到“LLVMOpaqueModule”的结构;我想使用“WriteBitcodeToFile”,它总是告诉我“类型不匹配”。我也想知道如何建立一个可执行文件的红外文件。如何将IR保存到文件并将其构建到可执行文件?
接着两种方法我使用保存模块:
1,首先使用WriteBitcodeToFile
bool unbuffered = false;
llvm::raw_ostream ro(unbuffered);
WriteBitcodeToFile(m, ro);
2,二使用LLVMWriteBitcodeToFile
const char *Path = "hello2.s";
int ans = LLVMWriteBitcodeToFile(m, Path);
注:m是一个点模块实例
使用正确的函数确实是来自'Bitcode/ReaderWriter.h'的'WriteBitcodeToFile'。如果您不能使用它,您应该提供您在此问题中尝试编译的代码。 – Oak
是的,Follow是WriteBitcodeToFilevoid的原型:WriteBitcodeToFile(const Module * M,raw_ostream &Out); –
是的,Follow是WriteBitcodeToFilevoid的原型:WriteBitcodeToFile(const Module * M,raw_ostream &Out);当我初始化一个raw_stream时,我买不起一个。类型匹配参数具有默认的参数 –