在非管理员 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 命令(例如,blockMeshfoamDictionary、...)时,我会收到以下消息:

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 数据库

在非管理员 Mac 用户帐户上安装 PostgreSQL

windows下在非阻塞TCP套接字上使用SO_SNDBUF的奇怪行为

ini 在非管理URL上强制Wordpress到HTTP