अब मैं क्लैंग का उपयोग अपनी .c फ़ाइल को .s फ़ाइल में बनाता हूं। और मैंने एलएलएमएम एपीआई का उपयोग आईआर संशोधित किया है। हालांकि, अब मैं अपनी संशोधित आईआर को फाइल में सहेज नहीं सकता। मैं "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);
ध्यान दें: मीटर का एक मुद्दा है मॉड्यूल इंस्टेंस
उपयोग करने के लिए सही फ़ंक्शन वास्तव में 'बिटकोड/रीडरवाइटर.h' से 'WriteBitcodeToFile' है। यदि आप इसका उपयोग करने में विफल रहते हैं, तो आपको वह कोड प्रदान करना चाहिए जिसे आप इस प्रश्न में संकलित करने का प्रयास कर रहे हैं। – Oak
हाँ, का पालन WriteBitcodeToFilevoid के प्रोटोटाइप है: WriteBitcodeToFile (स्थिरांक मॉड्यूल * एम, raw_ostream &Out); –
हाँ, का पालन WriteBitcodeToFilevoid के प्रोटोटाइप है: WriteBitcodeToFile (स्थिरांक मॉड्यूल * एम, raw_ostream &Out); जब मैं एक raw_stream init, मैं एक वहन नहीं कर सकते ।। प्रकार मैच पैरामीटर जो एक डिफॉल्ट पैरामीटर है –