में इंटेल-स्टाइल इनलाइन असेंबली मैं जीसीसी कंपाइलर का उपयोग कर कोड :: ब्लॉक में पुराने सी ++ सॉफ़्टवेयर प्रोजेक्ट को संकलित करने की कोशिश कर रहा हूं, और कुछ अन्य मुद्दों को ठीक करने के बाद, मैंने एक दीवार मारा है: प्रोजेक्ट में एक फ़ाइल है इंटेल शैली इनलाइन एएसएम साथजीसीसी
_asm {
code here
}
के रूप में लिखा और संकलक के साथ संकलित करने के लिए मना कर दिया "त्रुटि: '_asm' इस दायरे में घोषित नहीं किया गया था"।
मैंने थोड़ी देर बिताए हैं समाधान के लिए चारों ओर गुगलिंग, लेकिन केवल मुझे जो मिल सकता है वह बिल्ड विकल्प (0 मैंने कोशिश की है और काम नहीं कर सकता) में -masm=intel
जोड़ना है, या परिवर्तित करने के लिए कोड asm ("code here");
(जो कि एएसएम की भारी राशि के कारण व्यवहार्य नहीं है)। क्या किसी को पता है कि मैं इस कोड को संकलित करने के लिए जीसीसी कैसे प्राप्त कर सकता हूं, या क्या मुझे छोड़ देना चाहिए और एक अलग कंपाइलर का उपयोग करना चाहिए?
मैक्रो उत्पन्न करने के बारे में, और फिर मैक्रो के साथ _asm लाइनों को प्रतिस्थापित करने के लिए एक स्क्रिप्ट का उपयोग कैसे करें। फिर आप बेहतर संकलक स्वतंत्रता प्राप्त करते हैं। – daramarak
एक मैक्रो एक विचार होगा, हालांकि मैंने कभी पहले कभी नहीं उपयोग किया है, इसलिए मुझे इसे भी समझना होगा (मेरे प्रश्न को यह ध्वनि के बावजूद, मैं वास्तव में इस सामान के साथ एक पूर्ण नोब हूं//) । इसके अलावा, एएसएम रूटीन लेबल या कुछ ('_asm {\ n कोड यहाँ \ n} L01: __asm ... ') के साथ मिलकर जुड़े हुए हैं, और मुझे यकीन नहीं है कि इसे कैसे संभालें। – Dinoguy1000
कोड संकलित नहीं होगा, आपको इसे gcc के साथ संकलित करने के लिए बदलने की आवश्यकता होगी (या इसके बजाय एमएसवीसी का उपयोग करें)। –