Теперь я использую clang для сборки моего файла .c в файл .s. И я использовал API llvm для изменения IR. Однако теперь я не могу сохранить измененный IR в файл. Я хочу использовать "LLVMWriteBitcodeToFile", но не могу найти структуру "LLVMOpaqueModule"; Я хочу использовать «WriteBitcodeToFile», он всегда показывает мне «несоответствие типов». И я также хочу знать, как собрать ИК-файл в исполняемый файл.
Далее два метода, которые я использую для сохранения модуля:
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 — это точка экземпляра модуля
WriteBitcodeToFile
изBitcode/ReaderWriter.h
. Если вы не можете его использовать, вы должны предоставить код, который вы пытаетесь скомпилировать, в этом вопросе. - person Oak   schedule 18.12.2012