【发布时间】:2021-12-07 07:06:30
【问题描述】:
我已经从here 下载并安装了一个 Windows 原生编译的 OpenFOAM。但是,当我尝试在 MSYS2 终端中运行任何 OF 命令(例如,blockMesh、foamDictionary、...)时,我会收到以下消息:
path/to/folder/v2106/msys64/home/ofuser/OpenFOAM/OpenFOAM-v2106/platforms/win64MingwDPInt32Opt/bin/blockMesh.exe:加载共享库时出错:libstdc++-6.dll:无法打开共享对象文件: 没有这样的文件或目录
在 cmd 终端中,我收到错误消息:
系统错误
无法继续执行代码,因为找不到 msmpi.dll。重新安装程序可能会解决此问题。
来自here,我发现我可能需要以管理员模式重新安装 OpenFOAM,而这台工作机器上没有。所以我尝试使用pacman -S msmpi 安装MSMPI,就像我以前使用here 一样。但我收到错误消息:
错误:找不到目标:msmpi
我的目标是在这台没有管理员权限的 Windows 机器上安装和使用 OpenFOAM 软件,不管是哪个版本。如果您能帮助我了解如何解决上述问题或找到其他解决方法,我将不胜感激。
P.S.1. 搜索安装目录,发现libstdc++-6.dll文件在path\to\folder\v2106\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2106\platforms\win64MingwDPInt32Opt\bin中。所以我想知道我收到第一条错误消息。也许 OF 没有针对库编译 properly?我应该尝试按照建议的here 删除path\to\folder\v2106\msys64\usr\lib\gcc\x86_64-pc-msys\7.4.0\libstdc++.dll.a 吗?
P.S.2. 我很久以前写过this post,介绍了在 Windows 上安装 OpenFOAM 的不同方法。遗憾的是,要启动并运行它仍然需要付出很大的努力。
P.S.3.关于这个问题的后续here on the MSYS2 Discord server。
P.S.4.开新一期here on the OpenFOAM repository。
【问题讨论】:
-
path\to\folder\v2106\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2106\platforms\win64MingwDPInt32Opt` ? Try to install/update libstdc++:pacman -Su mingw-w64-x86_64-gcc-libs 下是否有lib目录` -
@s.ouchene 那里只有一个
bin文件夹。我应该手动创建一个lib文件夹吗?安装失败并显示error: failed to init transaction (unable to lock database) error: could not lock database: File exists if you're sure a package manager is not already running, you can remove /var/lib/pacman/db.lck。让我重新启动系统,然后再试一次。 -
尝试手动解压那个包,你会发现里面有DLL文件,复制到:`path\to\folder\v2106\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2106\platforms\win64MingwDPInt32Opt \bin`
-
我相信您会收到错误消息,因为您没有管理员权限。但是无论如何尝试一下,如果不起作用,请考虑使用 blueCFD 版本(基于 OF8)。 MSMPI 仅用于并行运行实用程序/求解器,但它不应该是强制性的。
-
对于 BlueCFD,我相信如果您在此处发布:github.com/blueCFD/Core/issues,您将得到维护者的确认是否可行。
标签: windows mingw-w64 msys2 openfoam ms-mpi