Ошибка приложения MySQL при запуске

#mysql #dll #mysql

#mysql #dll #mysql

Вопрос:

Я скомпилировал MySQL без проблем. Когда я запустил некоторые из исполняемых файлов (resetdb.exe и simple1.exe ) они предлагают запустить, чтобы проверить, прошла ли установка успешно, первая ошибка, которую я получил, заключалась в том, что libmysql.dll отсутствовало.

Добавление его пути к переменной среды PATH не устранило проблему, даже после запуска новой командной строки; мне пришлось скопировать DLL в каталог, где находятся исполняемые файлы MySQL .

Теперь DLL найдена, но я получаю эту ошибку:

 simple1.exe - Application error
The application was unable to start correctly (0xc000007b). 
Click OK to close the application.
  

даже при запуске из командной строки я не получаю больше информации, чем эти.

Спасибо за любую помощь!

MySQL 5.5 — MySQL 3.0.9 — 64-разрядная версия Windows 7 — MINGW32 — GCC 4.4.0

Ответ №1:

0xC000007B — это ошибка Windows, которая означает, что исполняемый файл поврежден. Это может относиться либо к simple1.exe , либо к одной из библиотек DLL, на которую оно ссылается.

Некоторые причины, по которым это могло произойти:

  • Вы смешиваете цепочки инструментов несовместимым образом. В вашем случае вы, возможно, собирали simple1.exe с использованием фрагментов, созданных MinGW GCC, и фрагментов, созданных Visual C . MinGW должен быть совместим с любой библиотекой DLL на чистом C, созданной Visual C , включая библиотеку DLL MySQL C API. Однако вам могут мешать другие компоненты. MinGW не совместим с VC на уровне C , но тогда он вообще не должен был бы связываться, если бы это было вашей проблемой.

  • Вы не выполнили шаги сборки библиотеки импорта MySQL C API в README-MinGW.txt . Вы либо пропустили шаг, либо пропустили его полностью и пытаетесь использовать библиотеку импорта, поставляемую с MySQL.

  • В ваших предыдущих вращениях вы получили поврежденный объектный файл, на который была установлена ссылка. Попробуйте сказать make clean all на верхнем уровне MySQL , чтобы принудительно выполнить полную перестройку.

  • Вы смешиваете версии MySQL или MySQL . Если у вас в системе более одной версии каждого из них, убедитесь, что вы последовательно их используете. То есть создайте библиотеку импорта C API из той же библиотеки DLL, с которой вы запускаете программы, используйте exrun.bat для запуска примеров, чтобы убедиться, что вы используете только что созданную версию MySQL DLL вместо другой, которая есть в вашем PATH, и т.д.

Кроме того, я отмечаю, что вы используете более старую версию MySQL . Если бы вы были на Linux, я мог бы это понять, поскольку некоторые дистрибутивы все еще поставляются с версией 3.0.9. Но поскольку вам приходится собирать MySQL из исходного кода с помощью MinGW, я не понимаю, почему вы не используете 3.1.0. Вы откуда-то получили двоичную сборку?

Что касается вашей PATH проблемы, вы перезапустили оболочку MinGW после выполнения этого? Обновления пути не влияют на запущенные программы; они сохраняют значение, которое они видели при запуске.