8个版本
新版本 0.2.8+1.17.10 | 2024年8月20日 |
---|---|
0.2.7+1.17.9 | 2024年4月11日 |
0.2.6+1.17.9 | 2023年10月27日 |
0.2.4+1.17.8 | 2023年5月18日 |
0.2.2+1.17.7 | 2023年3月28日 |
#2349 in 算法
40 个月下载量
用于 6 个crate (3 个直接使用)
6.5MB
167K SLoC
Clp-src
Clp-src
crate是一个*-src crate。它通过cargo将Clp库链接到可执行文件,但不提供Rust绑定。Clp使用CoinUtils (CoinUtils-src)、Osi (Osi-src)(可选)构建。
通过这个包,你无需担心在系统中安装Clp,它是一个多平台包。
Clp(Coin-or线性规划)是一个开源的线性规划求解器。它主要用于作为可调用的库,但也提供了一个基本的、独立的可执行版本。
用法
-
在你的
Cargo.toml
中添加以下内容[dependencies] clp-src = "\*"
-
在你的
lib.rs
中添加以下内容extern crate clp_src;
此包不提供绑定。请使用coincbc-sys、coinclp-sys来使用Cbc、Clp等。
[dependencies]
coinclp-sys = { version = "\*" }
配置
功能
以下Cargo功能受到支持
default
用于构建带有osiclp
和clpsolver
功能的软件包;osiclp
用于构建支持Osi的软件包;clpsolver
用于构建ClpSolver
库并为Rust
创建API。如果您不直接使用Clp
,您可以禁用此功能以减少构建时间;
环境
默认情况下,该软件包从源代码构建并静态链接。它还提供了以下环境变量,允许用户自定义链接到系统库
CARGO_COINUTILS_STATIC
用于静态链接到CoinUtils;- 将
CARGO_COINUTILS_SYSTEM
用于链接 CoinUtils 系统库; - 将
CARGO_OSI_STATIC
用于静态链接 Osi,如果启用了with_osi
功能; - 将
CARGO_OSI_SYSTEM
用于链接 Osi 系统库,如果启用了with_osi
功能; - 将
CARGO_CLP_STATIC
用于静态链接 Clp; - 将
CARGO_CLP_SYSTEM
用于链接 Clp 系统库;
将环境变量设置为 1
以启用功能。例如,要动态链接系统库,将 CARGO_${LIB_NAME}_SYSTEM
设置为 1
;要静态链接系统库,将 CARGO_${LIB_NAME}_SYSTEM
和 CARGO_${LIB_NAME}_STATIC
都设置为 1
。
Windows 和 vcpkg
在 Windows 上,如果 CARGO_${LIB_NAME}_SYSTEM
设置为 1
,clp-src
将使用 vcpkg 查找 Clp。在构建之前,您必须为您的目标三元组和链接类型安装正确的 Clp。例如,为 x86_64-pc-windows-msvc
工具链动态链接,安装 clp
的 x64-windows
三元组
vcpkg install clp --triplet x64-windows
要静态链接 Clp,为 x64-windows-static-md
三元组安装 clp
vcpkg install clp --triplet x64-windows-static-md
要静态链接 Clp 和 C 运行时 (CRT),为 x64-windows-static
三元组安装 clp
vcpkg install clp --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 中给出的条款进行许可。
依赖项
~2.5MB
~69K SLoC