Ошибка при запуске программы

Когда я пытаюсь запустить программу из папки Release, ОС открывает окно с сообщением об ошибке:

Не удается найти точку входа _gxx_personality_v0 процедуры в библиотеке динамических ссылок libstc ++. Dll

Это исходный код:

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <string>
#include "tinyxml.h"
using namespace std;

void write_app_settings_doc( )
{
TiXmlDocument doc;
TiXmlElement* msg;
TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" );
doc.LinkEndChild( decl );

TiXmlElement * root = new TiXmlElement( "MyApp" );
doc.LinkEndChild( root );

TiXmlComment * comment = new TiXmlComment();
comment->SetValue(" Settings for MyApp " );
root->LinkEndChild( comment );

TiXmlElement * msgs = new TiXmlElement( "Messages" );
root->LinkEndChild( msgs );
TiXmlElement * deep = new TiXmlElement( "vector" );
msgs->LinkEndChild( deep );
string array[4] = { "Bayer Leverkusen", "Sporting Lisboa", "Villareal", "Montpellier" };
for(int i=0; i<4; i++) {
TiXmlElement * items = new TiXmlElement( "item" );
deep->LinkEndChild( items );
const char* text = array[i].c_str();
items->SetAttribute("id", i);
items->LinkEndChild( new TiXmlText( text ));
}
msg = new TiXmlElement( "Welcome" );
msg->LinkEndChild( new TiXmlText( "Welcome to MyApp" ));
msgs->LinkEndChild( msg );

msg = new TiXmlElement( "Farewell" );
msg->LinkEndChild( new TiXmlText( "Thank you for using MyApp" ));
msgs->LinkEndChild( msg );

TiXmlElement * windows = new TiXmlElement( "Windows" );
root->LinkEndChild( windows );

TiXmlElement * window;
window = new TiXmlElement( "Window" );
windows->LinkEndChild( window );
window->SetAttribute("name", "MainFrame");
window->SetAttribute("x", 5);
window->SetAttribute("y", 15);
window->SetAttribute("w", 400);
window->SetAttribute("h", 250);

TiXmlElement * cxn = new TiXmlElement( "Connection" );
root->LinkEndChild( cxn );
cxn->SetAttribute("ip", "192.168.0.1");
cxn->SetDoubleAttribute("timeout", 123.456); // floating point attrib

doc.SaveFile("appsettings.xml");
}

void Load() {
TiXmlDocument *doc = new TiXmlDocument("appsettings.xml");
doc->LoadFile();
TiXmlElement* root = doc->FirstChildElement("MyApp");
if (root) {
TiXmlElement* msgs = root->FirstChildElement("Messages");
TiXmlElement* input = msgs->FirstChildElement("vector");
TiXmlNode* child;
//for (child = input->FirstChild(); child; child = child->NextSibling()) {
while (child = input->IterateChildren(child)) {
TiXmlElement* item_element = child->ToElement();
cout << item_element->GetText() << "\n";
}
}
}

int main() {
write_app_settings_doc();
Load();
system("PAUSE");
return 0;
}

CodeLite 5.4
MinGW 4.8.1
Windows 7

0

Решение

Вы, вероятно, не соответствовали libstdc++6.dll файлы

Постскриптум Ты можешь использовать #include <cstdio> не смешивать заголовки (больше информации о различиях Вот)

0

Другие решения

Если вы запускаете его из codelite, убедитесь, что сначала в пути указан каталог mingw 4.8.1 bin:

Из главного меню Codelite:
Настройки -> переменные среды

Добавить эту строку

PATH=/path/to/mingw481/bin;$PATH

Когда вы запускаете его вне codelite, просто скопируйте правильный dll рядом с вашим исполняемым файлом

Эран

0

Решено: проблема была в переменных среды Windows: в «Системных свойствах» -> «Переменные среды» (в моем случае в Windows 7) обе переменные% PATH% (одна для вашей учетной записи И общесистемная переменная% PATH %) не было пути MinGW (C: \ MinGW \ bin в моем случае).
Это не было проблемой tinyxml: для правильной работы просто добавьте файлы tinyxml .cpp в рабочую область и включите tinyxml.h в препроцессор.

0
По вопросам рекламы [email protected]