मैं अपने प्रोग्राम को बनाने के लिए लिनक्स x86_64 मशीन का उपयोग कर रहा हूं। मैंने एक साझा लाइब्रेरी को निष्पादन योग्य से जोड़ा है। मेरी प्रोजेक्ट में मैं एक फ़ंक्शन कॉल कर रहा हूं जिसने फ़ंक्शन के अंदर vector<string>
घोषित किया है। जब उस समारोह को बुलाया जाता है तो मेरा कार्यक्रम मारे जाते हैं। जब नीचे जीडीबी के माध्यम से डीबगिंग होता है तो मुझे आउटपुट मिलता है।कार्यक्रम सिग्नल सिग्नल प्राप्त हुआ, अवैध निर्देश
Program received signal SIGILL, Illegal instruction.
0x00002aaaac4d2be7 in OC_Catalog_c::File_ToText (this=0x611aa0) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:87
87 : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
(gdb) bt
0 0x00002aaaac4d2be7 in OC_Catalog_c::File_ToText (this=0x611aa0) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:87
क्या मेरी साझा लाइब्रेरी के संकलन का यह मुद्दा है ?? मेरे सिर पर पर्याप्त टक्कर लगी। कृपया मदद करे।
-Chaks
आपके प्रश्नों के लिए और अधिक जानकारी जोड़ना: हाँ, समारोह है कि मैं File_ToText बोल रहा हूँ वर्ग OC_Catalog_c में एक आभासी कार्य है। अन्य वर्ग के एक सदस्य चर में कक्षा OC_Catalog_c की ऑब्जेक्ट है जिसमें वर्चुअल फ़ंक्शन File_ToText भी है। उस ऑब्जेक्ट का उपयोग करके मैं वर्चुअल फ़ंक्शन File_ToText से OC_Catlog_c के File_ToText फ़ंक्शन को कॉल कर रहा हूं।
class Oc_Catalog_c
{
virtual vector<string> File_ToText (void) const;
}
class B
{
const OC_Catalog_c* m_pCatalog;
virtual vector<string> File_ToText (void) const;
}
vector<string> B::File_ToText(void) const
{
vector<string> a_SubData;
a_SubData = m_pCatalog->File_ToText();
}
स्टार्टर के लिए स्निपेट चिपकाने के साथ शुरू करें, और लाइब्रेरी के बारे में और बताएं। – lpapp
g ++ के साथ संकलन करते समय आप किन विकल्पों का उपयोग करते हैं? क्या आप साझा लाइब्रेरी भी बना रहे हैं या क्या आप इसे कहीं और प्राप्त कर चुके हैं? – idfah
यह जानना भी उपयोगी हो सकता है कि आप किस प्रोसेसर पर चल रहे हैं, और आप कौन सी लिनक्स डिस्ट्रो और संस्करण का उपयोग कर रहे हैं। – cordoro