Mingw/Msys编译.f文件后exe报错:缺失msys-gfortran-5.dll
解决编译Fortran后exe缺失msys-gfortran-5.dll的问题
改用静态链接编译
编译时添加静态链接参数,把依赖库打包进exe,彻底避免dll依赖问题:gfortran your_file.f -o your_exe.exe -static-libgfortran -static-libgcc重装对应MinGW的gfortran组件
不要单独下载dll文件,版本不匹配会引发更多问题。打开对应版本的MSYS2终端(MINGW64/UCRT64/MINGW32),执行重装命令:# MINGW64版本 pacman -S mingw-w64-x86_64-gfortran # UCRT64版本 pacman -S mingw-w64-ucrt-x86_64-gfortran # MINGW32版本 pacman -S mingw-w64-i686-gfortran重装完成后重启终端再编译。
检查环境变量与终端环境
- 确保对应MinGW版本的bin目录(如
C:\msys64\mingw64\bin)排在系统PATH最前端,避免工具版本冲突。 - 编译前在终端执行
gfortran --version,确认使用的是当前安装的目标版本。 - 务必在对应MinGW的终端(而非MSYS终端)编译,防止链接到MSYS系列的动态库。
- 确保对应MinGW版本的bin目录(如
排查依赖来源
在MSYS2终端中用ldd your_exe.exe命令查看exe的依赖链,确认msys-gfortran-5.dll的来源,判断是否是编译环境选错导致的错误链接。
内容的提问来源于stack exchange,提问作者Armin Zjajo
相关产品推荐
相关产品推荐

