在非管理员 Windows 上运行 OpenFOAM 原生编译
Posted
技术标签:
【中文标题】在非管理员 Windows 上运行 OpenFOAM 原生编译【英文标题】:Running OpenFOAM native compile on a non-admin Windows 【发布时间】: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,您将得到维护者的确认是否可行。
【参考方案1】:
使用 OpenFOAM-v2112 现在可以在没有 Windows 管理员权限的情况下进行安装。 原来的问题在旧版 OpenFOAM 中仍然很明显,因为它们依赖于单独安装 msmpi。
【讨论】:
谢谢,马克。我非常感谢您对此事的跟进和善意的支持。 ? 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @smaudet - 我该如何改进答案?基于最初的问题,OpenFOAM 的交叉编译和安装程序进行了更改,以便它现在可以工作。答案的适当措辞是什么?以上是关于在非管理员 Windows 上运行 OpenFOAM 原生编译的主要内容,如果未能解决你的问题,请参考以下文章
在非 Windows 机器上使用 php 处理所有版本的 MS Excel 电子表格的最佳方法是啥
在非 Windows 平台(Linux 或 Mac)上使用 Python 中的 Access 数据库
在非 Windows 平台(Linux 或 Mac)上使用 Python 中的 Access 数据库