#coin-or #bonmin #bonmin-sys

sys coinbonmin-sys

对 COIN-OR Clp 库的低级绑定

1 个不稳定版本

0.1.0 2024年1月27日

#10 in #coin-or

Apache-2.0

8KB

Coinpopt-sys

Package Documentation License

coinbonmin-sys 包是一个 *-sys 包。该包提供了对 Bonmin 库的低级绑定。

通过此包,您无需担心在系统中安装 Bonmin,它适用于所有平台。

Bonmin(基础开源非线性混合整数编程)是解决通用 MINLP(混合整数非线性规划)问题的开源代码。

使用方法

只需将以下内容添加到您的 Cargo.toml

[dependencies]
coinbonmin-sys = "0.1"

配置

以下 Cargo 特性得到支持

  • 默认

默认情况下,该包从源代码构建并静态链接。它还提供了以下环境变量,允许用户自定义链接到系统库

  • CARGO_BOMIN_STATIC 用于静态链接 Bonmin;
  • CARGO_BOMIN_SYSTEM 用于链接到 Bonmin 系统库;

将环境变量设置为 1 以启用该功能。例如,要动态链接到系统库,将 CARGO_${LIB_NAME}_SYSTEM 设置为 1;要静态链接到系统库,将 CARGO_${LIB_NAME}_SYSTEMCARGO_${LIB_NAME}_STATIC 都设置为 1

您还可以使用 bonmin-sysno-default-features 一起,并将 bonmin-src 添加到 Cargo.toml 中,并启用由 bonmin-src 定义的关联功能。请参阅 Bonmin-src

Windows 和 vcpkg

在 Windows 上,如果将 ${LIB_NAME}_SYSTEM 设置为 1,则 bonmin-src 将使用 [vcpkg] 来查找 Bonmin。在构建之前,您必须为目标三元组和链接类型安装正确的 Bonmin。例如,为 x86_64-pc-windows-msvc 工具链动态链接,请为 x64-windows 三元组安装 bonmin

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运行时”部分以获取详细信息。[链接](https://doc.rust-lang.net.cn/reference/linkage.html#static-and-dynamic-c-runtimes)

交叉编译

由于 [openblas-src] 的 Issue #101,我们无法使用具有 openblas-static 功能的包进行交叉编译。因此,如果您想交叉编译该包,可以使用 [mike-kfed](https://github.com/mike-kfed/openblas-src/tree/arm-cross-compile) 替代。

将以下内容添加到您的 project/.cargo/config.toml 中。

[patch.crates-io]
openblas-src = { git = "https://github.com/mike-kfed/openblas-src.git", branch = "arm-cross-compile" }

您可以通过向 cargo build 提供的 --target 选项来为其他目标编译。

目标 支持的
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf
armv7-linux-androideabi
armv7-unknown-linux-gnueabi
armv7-unknown-linux-gnueabihf
armv7-unknown-linux-musleabi
armv7-unknown-linux-musleabihf
riscv64gc-unknown-linux-gnu
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu

贡献

您的贡献非常受重视。请随时提出问题或提交拉取请求。请注意,任何提交给项目的贡献都将根据LICENSE中给出的条款进行许可。

依赖关系

约21MB
约514K SLoC