#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 после выполнения этого? Обновления пути не влияют на запущенные программы; они сохраняют значение, которое они видели при запуске.