MySQL ++ Ошибка приложения при запуске - PullRequest
1 голос
/ 10 ноября 2011

Я скомпилировал 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 - Windows 7 64 бит - MINGW32 - GCC 4.4.0

1 Ответ

1 голос
/ 11 ноября 2011

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

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

  • Вы смешиваете цепочки инструментов несовместимым образом.В вашем случае вы, возможно, построили simple1.exe, используя части, собранные MinGW GCC, и части, собранные Visual C ++.MinGW должен быть совместимым с любой чистой C DLL, созданной Visual C ++, включая MySQL C API DLL.Тем не менее, вы можете вмешиваться в другие части.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 после этого?Обновления PATH не влияют на работающие программы;они сохраняют ценность, которую они видели, когда они начали.

...