我编译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
答案 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更新不会影响正在运行的程序;他们保持着他们开始时看到的价值。