& quot; Не удалось найти точку входа в процедуру _ZNSt8_detail15_List_node_base7_M_hookEPS0_ в библиотеке динамических ссылок libstdc -6.dll. & quot;

есть небольшая проблема. У меня есть код C ++, он связан с некоторыми библиотеками. У меня ранее (оригинал) exe из исходного кода, и он отлично работает на первой машине. И есть вторая машина, на которой я работаю с исходным кодом, меняю его и т. Д. На второй машине сборка этого исходного кода работает нормально, например, когда я копирую второй.exe и пытаюсь запустить его на первой машине отображается сообщение об ошибке

«Не удалось найти точку входа в процедуру _ZNSt8_detail15_List_node_base7_M_hookEPS0_ в библиотеке динамических ссылок libstdc ++ — 6.dll.»

Во-вторых, second.exe копируется в ту же папку, что и original.exe, поэтому он должен видеть ddl, потому что оригинальный dll находится в той же папке, что и original.exe, не так ли?
Он скомпилирован с MinGW, работает в NetBeans и в свойствах проекта, есть библиотеки add (через файл библиотеки add), но libstdc ++ — 6.dll там не добавлено. libstdc ++ — 6.dll находится в папке, где original.exe

Спасибо

5

Решение

У меня была очень похожая проблема с использованием MingW внутри XP.

Я скомпилировал 12-летний проект Clines, используя mingW; Он работает нормально в MSYS, но не удалось при вызове в родной оболочке cmd, утверждая, что точка входа
Z_St8_detail15_and_so_on отсутствует в libstdc ++ — 6.dll.

И наоборот, простая следующая программа работала как в MSYS, так и в cmd:

#include <iostream>

using namespace std ;

class Hello {
public:
Hello() { cout << "Hello !" << endl ; }
} ;

Hello hello ;

int main (void) {}

Он должен был быть скомпилирован с использованием libstdc ++ (gcc -o hello hello.cpp -lstdc ++), и, конечно, компиляция не удалась, если опустить -lstdc ++. Таким образом, искажение имени, вероятно, не было единственной проблемой.

Я искал libstdc ++ — 6.dll в проводнике и обнаружил, что в моей системе их было два: один был установлен в migw32, а другой — ранее установленной программой, которая содержала свою собственную версию библиотеки. в его каталогах. Но он изменил PATH, так что его библиотека была найдена первой!

Я вставил путь, где Mingw стоял в начале пути внутри текущей оболочки. Что-то вроде:

set PATH=C:\mingw\bin;D:\msys\1.0\local\bin;%PATH%

и теперь все работает отлично!


Мартин, я не могу писать в твоих комментариях, поэтому я редактирую свое сообщение:
Вы собираетесь быть правым. Как Windows выглядит для DLL, объясняется прямо здесь:

http://msdn.microsoft.com/en-en/library/7d83bc18%28v=vs.80%29.aspx

ура

8

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

Других решений пока нет …

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