【问题标题】:MySQL++ Application error at launchMySQL++ 应用程序在启动时出错
【发布时间】:2011-11-10 11:50:23
【问题描述】:

我编译 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

【问题讨论】:

    标签: mysql dll mysql++


    【解决方案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 版本,而不是您在 PATH 中拥有的另一个版本等。

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

    至于您的PATH 问题,您这样做后是否重新启动了MinGW shell? PATH 更新不影响正在运行的程序;他们保留了开始时看到的价值。

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2014-03-14
      • 2017-01-25
      • 1970-01-01
      相关资源
      最近更新 更多