1

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

4

1 回答 1

1

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

可能发生这种情况的一些原因:

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

  • 您没有按照README-MinGW.txt. 您要么错过了一个步骤,要么完全跳过它并尝试使用 MySQL 附带的导入库。

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

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

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

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

于 2011-11-10T22:20:05.137 回答