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)
20KB
581 行
grb
此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