发布时MySQL ++应用程序错误

时间:2011-11-10 11:50:24

标签: mysql dll mysql++

我编译MySQL ++没有任何问题。当我启动一些可执行文件(resetdb.exe和simple1.exe)时,他们建议运行以测试安装是否成功,我得到的第一个错误是libmysql.dll丢失了。

即使在启动新的命令提示符之后,将其路径添加到PATH环境变量也无法解决问题;我不得不在MySQL ++可执行文件所在的目录中复制DLL。

现在找到了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 个答案:

答案 0 :(得分:1)

0xC000007B是Windows错误,表示可执行文件已损坏。它可以引用simple1.exe或其链接的DLL之一。

可能会发生以下原因:

  • 您正在以不兼容的方式混合工具链。在您的情况下,您可能使用MinGW GCC构建的部件和Visual C ++构建的部件构建simple1.exe。 MinGW 应该与Visual C ++构建的任何纯C DLL兼容,包括MySQL C API DLL。但是,您可能会有其他部分干扰。 MinGW 在C ++级别与不兼容VC ++,但是,如果这是你的问题,它根本不应该链接。

  • 您没有按照README-MinGW.txt中的MySQL C API导入库构建步骤进行操作。你要么错过了一步,要么完全跳过它,并试图使用MySQL附带的导入库。

  • 在您之前的旋转中,您最终得到了一个已损坏的目标文件,该文件已被链接。请尝试在MySQL ++的顶层使用make clean all强制完成重建。

  • 您正在混合使用MySQL或MySQL ++版本。如果系统上有多个版本,请确保使用一致。也就是说,从运行程序的同一个DLL构建C API导入库,使用exrun.bat运行示例以确保您使用的是MySQL ++ DLL的刚构建版本,而不是您使用的另一个版本你的路径等

此外,我注意到您使用的是旧版本的MySQL ++。如果你在Linux上,我可以理解,因为一些发行版仍然附带3.0.9。但由于你必须使用MinGW从源代码构建MySQL ++,我不明白为什么你不使用3.1.0。你从某个地方得到了二进制版本吗?

至于你的PATH问题,你做完这个后重新启动了MinGW shell吗? PATH更新不会影响正在运行的程序;他们保持着他们开始时看到的价值。