есть небольшая проблема. У меня есть код 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
Спасибо
У меня была очень похожая проблема с использованием 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
ура
Других решений пока нет …