我一直在使用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进行编译时,运行应用程序没有任何问题。 错误似乎是追溯的:尽pipe我没有重新编译它们,但很久以前使用gfortran编译并且完全运行的应用程序也崩溃了。 这使我认为这是一个dynamic的图书馆问题。 在线search表明,这可能是64位DLL和32位应用程序之间的兼容性问题
我正在使用Windows 7.在开始解决问题之前,我记得最近做的一件事是尝试更新MinGW; 我使用了mingw-get update和mingw-get升级命令行。
在网上浏览后,我尝试了以下修复:
– 重新安装了Visual C ++运行时环境
– 重新安装.NET框架
– 下载并replace了一堆.dll像mscvr100.dll,mscvr100d.dll等…
– 卸载并重新安装MinGW,以确保我有最新的gcc版本
– 在一个简单的应用程序(“Hello World!”types程序)上运行Dependency Walker
依赖Walker告诉我,找不到一些.dlls(完整列表: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文件夹中find(我几个星期前安装了Python和Anaconda,当时问题没有出现)。
如果有人想知道如何在不重新安装Windows的情况下让我的环境再次运行,我将不胜感激! 谢谢!!
我有一个类似的错误,但通过编辑我的环境变量。 我把g77作为路径变量的一部分,通过删除它并让gfortran独立,错误消失了