Ora uso clang build il mio file .c nel file .s. E ho usato l'API llvm per modificare l'IR. Tuttavia, ora non posso salvare il mio IR modificato in un file. Voglio usare "LLVMWriteBitcodeToFile", ma non riesco a trovare la struttura di "LLVMOpaqueModule"; Voglio usare "WriteBitcodeToFile", mi mostra sempre "type mismatch". E voglio anche sapere come costruire un file IR in un file eseguibile.Come salvare IR in un file e crearlo in un file eseguibile?
successivo sono due metodi che uso per salvare un modulo:
1, Primo utilizzo WriteBitcodeToFile
bool unbuffered = false;
llvm::raw_ostream ro(unbuffered);
WriteBitcodeToFile(m, ro);
2, secondo uso LLVMWriteBitcodeToFile
const char *Path = "hello2.s";
int ans = LLVMWriteBitcodeToFile(m, Path);
nota: m è un punto di Istanza di modulo
La funzione corretta da utilizzare è effettivamente 'WriteBitcodeToFile' da' Bitcode/ReaderWriter.h'. Se non riesci a usarlo, dovresti fornire il codice che stai cercando di compilare in questa domanda. – Oak
Sì, Follow è il prototipo di WriteBitcodeToFilevoid: WriteBitcodeToFile (const Module * M, raw_ostream &Out); –
Sì, Follow è il prototipo di WriteBitcodeToFilevoid: WriteBitcodeToFile (const Module * M, raw_ostream &Out); quando avvio un raw_stream, non posso permettermi un .. tipo di corrispondenza parametro che ha un parametro di default –