我一直在使用MinGW和GNU Fortran编译器,以便在Windows上编译Fortran程序,这一直是一种成功的方法.但是,我在过去4天内收到以下错误:
The application was unable to start correctly (0xc000007b). Click OK to close the application.
该错误仅在运行我自己编写的应用程序时发生,并且我使用MinGW/gfortran组合编译.使用Visual Studio和iFort进行编译时,运行应用程序没有问题.这个错误似乎是追溯性的:很久以前使用gfortran编译并且运行完美的应用程序直到现在也会中断,即使我没有重新编译它们.这让我觉得它是一个动态库问题.在线搜索表明它可能是64位dll和32位应用程序之间的兼容性问题
我正在使用Windows 7.在开始解决问题之前我记得做的最新事情之一是尝试更新MinGW; 我使用了mingw-get update和mingw-get upgrade命令行.
在网上浏览后,我尝试了以下修复:
- 重新安装了Visual C++运行时环境
- 重新安装了.NET框架
- 下载并替换了一堆.dll,如mscvr100.dll,mscvr100d.dll等...
- 卸载并重新安装重新安装MinGW以确保我有最新的gcc版本
- 在一个简单的应用程序上运行Dependency Walker("Hello World!"类型程序)
Dependency Walker告诉我无法找到多个.dll(完整列表:API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL,API-MS-WIN-CORE-WINRT-ERROR-L1-1 -0.DLL,API-MS-WIN-CORE-WINRT-L1-1-0.DLL,API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL,API-MS-WIN-CORE -WINRT-STRING-L1-1-0.DLL,API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL,DCOMP.DLL,GPSVC.DLL,IESHIMS.DLL).
它还以红色突出显示了libquadmath-0.dll(libgfortran-3.dll似乎依赖于它).实际上,似乎libquadmath-0.dll是一个32位程序中间的64位DLL.当用Dependency Walker打开.dll时,我可以看到这个库中的所有模块都是x86,除了库本身是x64(DW的CPU列).我不确定这是如何可行的/如何解决它.该库位于Python/Anaconda文件夹中(几周前我安装了Python和Anaconda,当时没有出现问题).
如果有人知道如何在不重新安装Windows的情况下让环境再次运行,我将非常感激!谢谢!!