#gmsh #ffi #api-bindings

bin+lib rgmsh

非官方、具有个人见解的 Gmsh API Rust 绑定

3 个版本

0.1.2 2019 年 11 月 19 日
0.1.1 2019 年 11 月 19 日
0.1.0 2019 年 9 月 19 日

#479 in 可视化

自定义许可

66KB
869

对 Gmsh API 的高级绑定。

您需要一份 Gmsh 库的副本,即 libgmsh,才能使用此软件包。

设置 libgmsh

此软件包使用环境变量 GMSH_LIB_DIR。将 GMSH_LIB_DIR 设置为您的 Gmsh SDK /lib 文件夹的位置。您还需要调整您的 LD_LIBRARY_PATH,以便在运行时找到库。

libgmsh 安装(Linux)

将 Gmsh SDK(v4.4.1)下载到当前文件夹,并相应设置库变量。

$ wget http://gmsh.info/bin/Linux/gmsh-4.4.1-Linux64-sdk.tgz -O /tmp/gmsh-sdk.tar.gz
$ tar -xvf /tmp/gmsh-sdk.tar.gz
$ export GMSH_LIB_DIR=$PWD/gmsh-4.4.1-Linux64-sdk/lib/
$ export LD_LIBRARY_PATH=$GMSH_LIB_DIR:$LD_LIBRARY_PATH
$ cargo test -- --test-threads=1

将变量添加到您的 shell 配置文件中,以避免每次都需要设置它们。

# in your .bashrc or similar 
GMSH_LIB_DIR="/path/to/your/gmsh-sdk/lib"
export GMSH_LIB_DIR

LD_LIBRARY_PATH=$GMSH_LIB_DIR:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

入门指南

使用 cargo run --example <example> 运行示例

Gmsh 是一个共享资源,Rust 测试默认并行运行,因此仅使用 cargo test -- --test-threads=1 将导致崩溃。

使用 cargo test -- --test-threads=1 运行测试

您可以在 ~/.cargo/config 文件中为此命令创建别名

[alias]
tt = "test -- --test-threads=1"

链接到 Gmsh 库

Gmsh 为 Linux、MacOS 和 Windows 提供预构建的二进制 SDK 库。

下载服务器是: http://gmsh.info/bin/

下载最新版本,并确保文件名以 sdk 结尾。

Linux

将所有动态库 libgmsh.so* 文件放置在链接器可以找到它们的位置。

Windows

Windows 上的 Gmsh 是由 MinGW 构建的,而不是 Visual Studio 工具链。

由于 ABI 差异,将 Rust 程序链接到 Gmsh 最简单的方法是使用 x86_64-pc-windows-gnu 目标和 stable-gnu 工具链。

rustup default stable-gnu

然后,下载 Windows SDK 压缩文件,并确保链接器可以找到库。

如果不行,您在运行 cargo test -- --test-threads=1 时会得到大而可怕的错误。

确保链接器能够找到 Gmsh 的方法之一是将 .lib.dll 文件复制到您的 rustup 目录中,例如:

~\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib

依赖项

~145KB