在mingw-w64 64-bit Shell
编译应用mingw-w64 64-bit Shell
,它在shell内部运行正常,但是在shell外部正常运行时the application was unable to start correctly (0xc00007b)
。
当我抱怨丢失它们时,我从msys2 / mingw-w64 bin目录中移走了一些必要的DLL,但是现在它提供了这个不透明的错误。 我究竟做错了什么?
错误0xc00007b
基本上意味着通常在混合64位和32位DLL时发生的“无效图像格式”。 发生什么事情是,你有一个64位应用程序,寻找一个特定的DLL,它在全局路径中,但路径中的是32位。 因此,问题是:它不会抱怨缺少的DLL,它只是试图加载它。 由于它是一个32位应用程序,并且您的应用程序是一个64位应用程序,您会收到错误0xc00007b
。
解决方法是将所有依赖的DLL复制到应用程序路径。
接下来的问题是你不知道哪一个。
你可以用msys2 shell做什么是:去目录并运行命令:
ldd application.exe
这会给你一个应用程序依赖的DLL列表。 复制msys2 / mingw-w64相关的DLL到目录。 这将允许应用程序在查找PATH并找到32位DLL之前找到它们。