使用 MinGW gfortran 编译时 Windows 无法识别 DLL

DLL not recognized on Windows while compiling with MinGW gfortran

我正在尝试 link 一些库在 Windows 上使用 MinGW 中的 gfortran 实现创建可执行文件。我有可用的 .dll 和 .lib 库文件,它们在路径上可用。当我尝试编译我的程序时,出现如下错误:

libblas.dll: file not recognized: File format not recognized

我的输入如下:

gfortran -O3  -g dependency.o testmain.o -o ../testrun.exe -lblas -llapack

blas 和 lapack 是我想要 link 的库,它们在路径上作为 libblas.dll 和 liblapack.dll 可用。其他库似乎可以作为 *.a 或 *.dll.a 文件使用,但我不确定如何将我想使用的库转换成那种格式。

为什么会发生这种情况,是否有解决此问题的方法来创建可运行的可执行文件?

正如@jacob 在问题评论中指出的,dll 版本是 64 位,而编译器 (MinGW) 默认为 32 位版本。