5 个版本 (2 个稳定版)

10.0.0 2024年5月12日
9.5.0 2022年4月12日
0.2.0 2022年1月11日
0.1.1 2021年2月18日
0.1.0 2021年2月18日

#18 in #declaration

每月43次下载
用于 3 个crate(通过 grb

MIT 许可证

20KB
581

grb GitHub tag (latest SemVer)

此crate提供了Gurobi优化器的Rust绑定。它目前需要Gurobi 9.0或更高版本。

这个库最初是从不再维护的gurobi 分支出来的。从那时起,它经历了一系列根本性的API更改。

此crate支持Gurobi 9.5、10和11。

安装和链接

在开始使用此crate之前,您应该安装Gurobi并获取一个 许可

构建

在本节中,假设Gurobi安装在 /opt/gurobi/linux64

建议您使用系统链接器的环境变量以确保可以找到Gurobi。例如,在Linux系统上,这可以通过将gurobi安装目录下的lib子目录的路径追加到LIBRARY_PATH来实现。例如,将以下内容放入您的~/.profile文件中。您也可以在项目的PROJECT/.cargo/config.toml文件中设置此变量(请参阅此部分)。

export LIBRARY_PATH="LIBRARY_PATH:/opt/gurobi/linux64/lib"

在您的 ~/.profile 文件中。您也可以在项目的 PROJECT/.cargo/config.toml 文件中按项目设置此变量(请参阅此部分)。

另一种选择是将环境变量 GUROBI_HOME 设置为Gurobi的安装路径(例如,例如 /opt/gurobi95/linux64)。

在 Gurobi 共享库的名称中,将包含 Gurobi 的主版本号和副版本号。例如,Gurobi 11.0.* 将有一个共享库文件 libgurobi110.so。依赖于这个crate的 grb-sys2 crate 将使用 -lgurobi110 链接。在 Linux 上,我们根据 GUROBI_HOME 来猜测库的名称。如果这个猜测不正确(或者没有设置 GUROBI_HOME,或者你在 Windows 上),你需要设置 GUROBI_LIBNAME 环境变量。例如,假设你已经设置了 LIBRARY_PATH/opt/gurobi1003/linux64/lib(其中包含 libgurobi100.so),并且 GUROBI_HOME 没有设置。那么,你应该设置 GUROBI_LIBNAME=gurobi100,这样在编译时就会发出正确的 -lgurobi100 标志。

运行

在运行编译后的二进制文件或执行测试时,你可能会得到

error while loading shared libraries: libgurobi95.so: cannot open shared object file: No such file or directory

在这种情况下,你需要设置 LD_LIBRARY_PATH(在 Windows 上我相信这被称为 PATH)环境变量,或者通过在 RUSTFLAGS 中提供适当的链接器标志,在编译期间将 libgurobi95.so 的路径嵌入到 rpath 中。

对于下面的例子,假设 Gurobi 的路径是 /opt/gurobi/linux64/lib/libgurobi95.so。你可以在 ~/.profile 中像设置 LIBRARY_PATH 变量一样设置 LD_LIBRARY_PATH

export LD_LIBRARY_PATH="LD_LIBRARY_PATH:/opt/gurobi/linux64/lib"

文档

文档可以在 docs.rs 上找到。

许可证

此软件在 MIT 许可证下发布。

依赖关系

~14KB