#coin-or #link #class #src #collection #helper #coin-utils

sys coinutils-src

以 crate 形式重新分发 Coin-OR CoinUtils

9 个版本

新版本 0.2.9+2.11.12 2024年8月20日
0.2.8+2.11.11 2024年4月7日
0.2.6+2.11.10 2023年10月27日
0.2.4+2.11.9 2023年5月18日
0.1.0+2.11.6 2023年3月18日

#1102 in 算法

Download history 18/week @ 2024-04-29 13/week @ 2024-05-06 13/week @ 2024-05-13 32/week @ 2024-05-20 19/week @ 2024-05-27 19/week @ 2024-06-03 20/week @ 2024-06-10 34/week @ 2024-06-17 24/week @ 2024-06-24 11/week @ 2024-07-08 27/week @ 2024-07-15 58/week @ 2024-07-22 16/week @ 2024-07-29 20/week @ 2024-08-05 15/week @ 2024-08-12

113 每月下载量
8 个 crate (4 个直接) 使用

Apache-2.0

2MB
58K SLoC

C++ 58K SLoC // 0.2% comments Automake 149 SLoC // 0.1% comments Rust 55 SLoC Shell 11 SLoC // 0.3% comments

CoinUtils-src

Package Documentation License

CoinUtils-src crate 是一个 *-src crate。它将 CoinUtils 库链接到 cargo 构建的程序,但不提供 Rust 绑定。

通过此包,您无需担心在系统中安装 CoinUtils,这是一个适用于 所有平台 的包。

CoinUtils 是一组开源类和辅助函数集合,通常对多个 COIN-OR 项目都有用。

用法

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

    [dependencies]
    coinutils-src = "\*"
    
  2. 将以下内容添加到您的 lib.rs

    extern crate coinutils_src;
    

此包不提供绑定。请使用 coincbc-syscoinclp-sys 来使用 Cbc、Clp 等。

[dependencies]
coincbc-sys = { version = "\*" }

配置

环境

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

  • CARGO_COINUTILS_STATIC 用于静态链接 CoinUtils;
  • CARGO_COINUTILS_SYSTEM 用于链接到 CoinUtils 系统库;

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

Windows 和 vcpkg

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

vcpkg install coinutils --triplet x64-windows

要静态链接 CoinUtils,请为 x64-windows-static-md 三元组安装 coinutils

vcpkg install coinutils --triplet x64-windows-static-md

要静态链接 CoinUtils 和 C 运行时 (CRT),请为 x64-windows-static 三元组安装 coinutils

vcpkg install coinutils --triplet x64-windows-static

并使用 +crt-static 选项进行构建

RUSTFLAGS='-C target-feature=+crt-static' cargo build --target x86_64-pc-windows-msvc

请参阅 Rust参考中的“静态和动态C运行时” 获取详细信息。

交叉编译

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

目标 支持
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
x86_64-unknown-linux-musl
其他 未测试

贡献

您的贡献将受到高度赞赏。请毫不犹豫地提交问题或拉取请求。请注意,任何提交给项目以供包含的贡献都将根据在 LICENSE 中给出的条款进行许可。

依赖项