c++ - प्रक्रिया प्रविष्टि बिंदु__gxx_personality_v0 स्थित नहीं हो सका




qt mingw (3)

संपादक का नोट: "त्रुटि त्रुटि बिंदु _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_ गतिशील लिंक लाइब्रेरी libstdc++-6.dll " में स्थित नहीं हो सकता है, जैसा कि समान कारण है और वही समाधान लागू होते हैं।

अगर मैं विंडोज़ में अपना इरलिच सी ++ कंसोल एप्लीकेशन चलाने के लिए चाहता हूं तो मुझे यह त्रुटि मिलती है:

the procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll

मैं MinBW और Irrlicht v1.8 इंजन के साथ CodeBlocks v12.11 का उपयोग कर रहा हूँ। मैं इसे सही ढंग से स्थापित करता हूं। मेरे कंप्यूटर पर MingW के साथ एक क्यूटी भी स्थापित है। क्या यह संभव है कि एक संघर्ष हो?

मूल कोड यही है:

#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

int main() {
    IrrlichtDevice *device = createDevice( video::EDT_OPENGL);

    if (!device)
        return 1;

    IVideoDriver* driver = device->getVideoDriver();
    ISceneManager* smgr = device->getSceneManager();
    IGUIEnvironment* guienv = device->getGUIEnvironment();

    guienv->addStaticText(L"Hello World", core::recti(10, 10, 100, 30));
    device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

    while(device->run()) {
        driver->beginScene(true, true, SColor(250, 190, 1, 2));
        smgr->drawAll();
        guienv->drawAll();
        driver->endScene();
    }

    device->drop();
    return 0;
}

मैंने कंपाइलर को C:\CodeBlocks\MinGW कॉन्फ़िगर किया। प्रत्येक फ़ाइल (सेटिंग्स में दिखाए गए कुछ हैं) make.exe को छोड़कर bin नीचे स्थित है। क्या यह सामान्य है?

ऑटो-डिटेक्ट बटन ऊपर दिए गए पथ का भी सुझाव देता है।


libstdc ++ - 6.dll mingw \ bin में windows \ system32 शुभकामनाएं में कॉपी करें


ऐसा क्यों होता है क्योंकि यह libstdc++-6.dll भी WINDOWS\System32 निर्देशिका में हो सकता है (या किसी अन्य स्थान पर जहां इसे पाथ के माध्यम से पाया जा सकता है)। खासकर जब आप मिंगडब्ल्यू के विभिन्न संस्करणों का उपयोग करते हैं। तो समाधान या तो वातावरण PATH चर को इस तरह से बदलने के लिए है कि आपकी MingW\bin निर्देशिका Windows सिस्टम निर्देशिका से पहले है, मौजूदा संस्करण को नए के साथ प्रतिस्थापित करें या dll को exectuable फ़ोल्डर में कॉपी करें।


ये त्रुटियां मेल नहीं खाती डीएलएल के कारण होती हैं।

प्रश्न में संदेशों के लिए यह libstdc++-6.dll का गलत संस्करण है, लेकिन आप अन्य डीएलएल का जिक्र करते हुए संदेश देख सकते हैं जो विंडोज के लिए जीसीसी के विभिन्न संस्करणों के साथ बनाया गया था; और यहां तक ​​कि .exe फ़ाइल को चलाने का भी उल्लेख किया जा रहा है।

यहां विशिष्ट परिवर्तन हैं:

  • basic_string|char_traits... - सी ++ 11 के लिए std::string में एक ब्रेकिंग एबीआई परिवर्तन था
  • __gxx_personality_v0 - मेरा मानना ​​है कि इसका उपयोग करना है जिसमें अपवाद कार्यान्वयन उपयोग में है (विंडोज़ के लिए जीसीसी विभिन्न बौने 2, विन 32-एसईएच, एसजेएलजे इत्यादि का उपयोग कर सकते हैं)

यदि आप एक अलग स्वाद द्वारा संकलित एक डीएलएल के कंपाइलर लिंक के एक स्वाद द्वारा संकलित एक आवेदन द्वारा आप इस संदेश को देखेंगे।

निष्पादन योग्य के लिए मिली डीएलएल की एक सूची देखने के लिए, आप निर्भरता वॉकर में निष्पादन योग्य खोल सकते हैं और "पूर्ण पथ" विकल्प सक्षम कर सकते हैं। यदि आपके पास सिगविन या समान इंस्टॉल है तो एक और तरीका ldd का उपयोग करना है।

सबसे सामान्य अपराधी libstdc++-6.dll । दुर्भाग्य से एबीआई परिवर्तन libstdc ++ के संस्करण संख्या में बदलाव के साथ नहीं जोड़ा गया था; और यह फ़ाइल नाम में अपवाद मोड के लिए डिफ़ॉल्ट व्यवहार नहीं है। (यदि आप स्वयं को MinGW बनाते हैं तो आप इन चीजों को बदल सकते हैं)।

मैं निर्भरता वॉकर द्वारा पाई गई प्रत्येक डीएलएल की जांच करने और यह सुनिश्चित करने के लिए कि यह उन लोगों को मिलती है जो आपके द्वारा निष्पादन योग्य बनाया गया है। libgcc-s-*.dll देखने के लिए एक और है।

असल में मैं सिस्टम पथ पर इनमें से कोई भी डीएलएल नहीं होने की सलाह दूंगा। विकास के लिए मैं उसी कंपाइलर के लिए डीएलएल को एक पाथ लोड करता हूं जिसे मैं संकलित कर रहा हूं; और तैनाती के लिए मैं प्रत्येक निष्पादन योग्य के रूप में उसी निर्देशिका में डीएलएल को बंडल करता हूं, क्योंकि रनटाइम डीएलएल खोज हमेशा उस निर्देशिका को पहले जांचती है। फिर एक पुराने खोज डीएलएल खोजने का कोई मौका नहीं है जो सिस्टम खोज पथ पर होता है।





irrlicht