2 个版本
0.1.1+1.8.9 | 2024 年 4 月 11 日 |
---|---|
0.1.0+1.8.9 | 2024 年 1 月 27 日 |
在 构建工具 中排名 296
每月下载量 80
用于 coinbonmin-sys
1MB
21K SLoC
Bonmin-src
描述
Bonmin-src
crate 是一个 *-src crate。该crate通过 cargo 将 Bonmin 库链接到可执行文件构建,但不提供 Rust 绑定。[Bomin] 使用 CoinUtils (CoinUtils-src), Osi (Osi-src), Cgl (Cgl-src), Clp (Clp-src), Cbc ([Cbc-src]), Ipopt (Ipopt-src), Mumps (Mumps-src)(可选), OpenBLAS (OpenBLAS-src)(可选) 和 Intel-mkl (intel-mkl-src)(可选) 构建。
通过此包,您无需担心在系统上安装 Bonmin,这是一个适用于 所有平台 的包。
Bonmin (基本开源非线性混合整数编程) 是一个用于解决一般 MINLP (混合整数非线性规划) 问题的开源代码。
用法
-
将以下内容添加到您的
Cargo.toml
[dependencies] bonmin-src = "\*"
-
将以下内容添加到您的
lib.rs
extern crate bonmin_src;
此包不提供绑定。请使用 coinbonmin-sys, coinipopt-sys, coincbc-sys, coinclp-sys 来使用 Bonmin,Ipopt,Cbc,Clp 等。
[dependencies]
coinbonmin-sys = { version = "\*" }
注意:C接口来自Bonmin(https://github.com/coin-or/Bonmin)的主分支,其中仍有一些待办事项。
配置
功能
以下Cargo功能受支持
默认
;cplex
与cplex构建(需要在系统中安装cplex);filtersqp
与filtersqp构建(需要在系统中安装filtersqp);
环境
默认情况下,从源代码构建的包静态链接。它还提供了以下环境变量,以允许用户自定义链接到系统库
CARGO_BONMIN_STATIC
静态链接到Bonmin;CARGO_BONMIN_SYSTEM
链接到Bonmin系统库;CARGO_IPOPT_STATIC
静态链接到Ipopt;CARGO_IPOPT_SYSTEM
链接到Ipopt系统库;CARGO_MUMPS_STATIC
静态链接到Mumps;CARGO_MUMPS_SYSTEM
链接到Mumps系统库;CARGO_COINUTILS_STATIC
静态链接到CoinUtils;CARGO_COINUTILS_SYSTEM
链接到CoinUtils系统库;CARGO_OSI_STATIC
静态链接到Osi;CARGO_OSI_SYSTEM
链接到Osi系统库;CARGO_CLP_STATIC
静态链接到Clp;CARGO_CLP_SYSTEM
链接到Clp系统库;CARGO_CGL_STATIC
静态链接到Cgl;CARGO_CGL_SYSTEM
链接到Cgl系统库;CARGO_CBC_STATIC
静态链接到Cbc;CARGO_CBC_SYSTEM
链接到Cbc系统库;
将环境变量设置为1
以启用功能。例如,要动态链接到系统库,将CARGO_${LIB_NAME}_SYSTEM
设置为1
;要静态链接到系统库,将CARGO_${LIB_NAME}_SYSTEM
和CARGO_${LIB_NAME}_STATIC
都设置为1
。
如果您启用OpenBLAS(https://github.com/blas-lapack-rs/openblas-src),您还可以通过OPENBLAS_*
将环境传递给make
。更多信息请参阅这里
其他
bonmin-src = { version = "\*", default-features = no }
ipopt-src = { version = "\*", features = ["intel-mkl", "intel-mkl-lp64-seq"] }
参考:intel-mkl-src、intel-mkl-src、ipopt-src、mumps-src
Windows和vcpkg
在Windows上,OpenBLAS需要vcpkg来查找Bonmin。在构建之前,您必须为您的目标三元组和链接方式安装正确的Bonmin。例如,为了为x86_64-pc-windows-msvc
工具链动态链接,请安装bonmin
用于x64-windows
三元组
vcpkg install bonmin --triplet x64-windows
若要静态链接Bonmin,请为x64-windows-static-md
三元组安装bonmin
vcpkg install bonmin --triplet x64-windows-static-md
若要将Bonmin和C运行时(CRT)静态链接,请为x64-windows-static
三元组安装bonmin
vcpkg install bonmin --triplet x64-windows-static
并使用+crt-static
选项进行构建
RUSTFLAGS='-C target-feature=+crt-static' cargo build --target x86_64-pc-windows-msvc
请参阅Rust参考中的“静态和动态C运行时”获取详细信息。
交叉编译
如果您使用OpenBLAS(openblas-src),您需要将OPENBLAS_CC
、OPENBLAS_FC
、OPENBLAS_HOSTCC
和OPENBLAS_TARGET
设置为传递给OpenBLAS的环境变量,参考:openblas-src和OpenBLAS。例如
export OPENBLAS_TARGET=ARMV8
export OPENBLAS_HOSTCC=gcc
export OPENBLAS_CC=aarch64-linux-gnu-gcc
export OPENBLAS_FC=aarch64-linux-gnu-gfortran
您可以通过向cargo build
提供--target
选项来为其他目标编译它。
目标 | 支持 |
---|---|
arm-unknown-linux-gnueabi |
✓ |
arm-unknown-linux-gnueabihf |
✓ |
armv7-unknown-linux-gnueabi |
✓ |
armv7-unknown-linux-gnueabihf |
✓ |
armv7-unknown-linux-musleabi |
✓ |
armv7-unknown-linux-musleabihf |
✓ |
aarch64-unknown-linux-gnu |
✓ |
aarch64-unknown-linux-musl |
✓ |
riscv64gc-unknown-linux-gnu |
✓ |
x86_64-pc-windows-msvc |
✓ |
x86_64-unknown-linux-gnu |
✓ |
其他 | 未测试 |
注意:intel-mkl-*
只能用于x86_64-*
。openblas-static
只能用于linux
。
贡献
我们非常欢迎您的贡献。请不要犹豫,打开一个issue或pull request。请注意,提交给项目包含的贡献将根据LICENSE中给出的条款进行许可。
依赖项
~18MB
~457K SLoC