Module Mingw-kernel32.mod-没有这样的文件或目录

Module Mingw-kernel32.mod-没有这样的文件或目录,module,compiler-errors,fortran,mingw,kernel32,Module,Compiler Errors,Fortran,Mingw,Kernel32,我想用MinGW编译一个程序,它是用Fortran编写的,附带一个.dll。Fortran代码中有以下行: USE kernel32 当我试图编译它时,它总是说kernel32.mod无法打开。没有这样的文件和目录。我不知道该怎么办。是否只是缺少了一些编译器选项,或者根本不可能使用MinGW进行编译 (Windows 7,MinGW 3.20)这可能是英特尔(和祖先)Fortran编译器系列中的模块,它为与kernel32.lib导入库(用于kernel32.dll Windows系统动态链接

我想用MinGW编译一个程序,它是用Fortran编写的,附带一个.dll。Fortran代码中有以下行:

USE kernel32
当我试图编译它时,它总是说kernel32.mod无法打开。没有这样的文件和目录。我不知道该怎么办。是否只是缺少了一些编译器选项,或者根本不可能使用MinGW进行编译


(Windows 7,MinGW 3.20)

这可能是英特尔(和祖先)Fortran编译器系列中的模块,它为与kernel32.lib导入库(用于kernel32.dll Windows系统动态链接库)和Windows.h头文件的相应部分相对应的内容提供Fortran定义


您可以从模块中识别代码正在使用的内容,并提供自己的定义。对于过程和类型,这几乎肯定需要使用编译器扩展来指定诸如调用约定和对齐之类的内容,这与Windows系统DLL使用的约定和对齐一致。这种约定在32位和64位Windows平台之间有所不同。

我猜您可能忘记设置
include
目录(
-I/path/to/module/files
)!在整个MinGW目录中没有kernel32.mod。只有libkernel32.a。那么您可能需要查找/下载
kernel32.f90
&对其进行编译,以使您的代码正常工作。联机进行一些研究,该文件似乎是特定于编译器的。因此,如果MinGW中没有包含它,那么MinGW可能不是这种编译的合适工具。这里有没有人对这种情况有经验。您使用什么工具?如果您只有库而没有模块,您可以为所需的
子例程
(s)和
函数
(s)编写显式
接口
,而不是
使用
模块。