无管理员权限Windows系统运行原生编译OpenFOAM缺失dll报错求助
无管理员权限Windows设备运行OpenFOAM报错解决方案
现有原生编译版报错修复
1. libstdc++-6.dll缺失报错
该问题是MSYS2终端的PATH路径优先级异常导致,MSYS2自带的gcc库路径优先级高于OpenFOAM自带bin目录,导致程序优先查找系统路径下的对应库文件而非你本地已存在的OpenFOAM bin目录下的dll。
有两种修复方案可选:
- 安全方案:每次启动MSYS2终端后,先执行
export PATH=path/to/folder/v2106/msys64/home/ofuser/OpenFOAM/OpenFOAM-v2106/platforms/win64MingwDPInt32Opt/bin:$PATH,将OpenFOAM的bin目录优先级提到最高,无需修改系统文件。 - 永久方案:操作前先将
path\to\folder\v2106\msys64\usr\lib\gcc\x86_64-pc-msys\7.4.0\libstdc++.dll.a文件备份到其他目录,删除该文件后重启MSYS2终端即可。
2. msmpi.dll缺失报错
pacman -S msmpi报错是因为msmpi不在MSYS2的默认软件源中。无需管理员权限的修复方法为:
直接获取对应版本的msmpi.dll文件,放到你本地OpenFOAM的bin目录path\to\folder\v2106\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2106\platforms\win64MingwDPInt32Opt\bin下即可解决该报错。
无管理员权限替代安装方案
如果上述修复方案无法执行,可选择以下任意一种免管理员权限的部署方案:
- 若设备已开启WSL1功能,可直接安装Ubuntu发行版后部署Linux版OpenFOAM:WSL1不需要硬件虚拟化支持,兼容性优于原生Windows编译版,安装全程无需管理员权限。
- 使用社区整理的OpenFOAM便携版:解压后直接运行内置启动脚本即可使用,无需任何安装操作。
- 使用Docker便携版部署OpenFOAM镜像:将Docker便携包和OpenFOAM镜像存放在本地磁盘或U盘中,启动后即可获得完整的OpenFOAM运行环境。
内容的提问来源于stack exchange,提问作者Foad S. Farimani
相关产品推荐
相关产品推荐

