1个稳定版本
9.7.0 | 2023年11月13日 |
---|
#10 在 #线性求解器
在 or-tools 中使用
10KB
99 行
Google Or-Tools
or-tools
是一个Rust库,它绑定到Google Or-Tools C++库的一些特定功能。
此仓库将致力于改进库的内容。
包括
- 待定 # TODO: 待实现!
构建
最低Rust版本
请将您的Rust编译器调整到版本 1.73
或更高。
支持的平台
- Linux { aarch64, x86_64 }
- Alpine Edge
- Arch Linux (AUR)
- CentOS 7 LTS
- Debian 11
- Fedora 37, 38
- OpenSuse Leap
- Ubuntu 20.04, 22.04, 23.04
- MacOS { aarch64, x86_64 }
- macOS Intel
- macOS M1
- Windows { x86_64 }
- Visual Studio 2022
您的包管理器可能不支持在上面的“支持”标记的平台上的部署。
为了更好的维护,请告知我们其他平台是否支持它。此外,您可以通过 Issues
向我们主张特定平台应该支持它。
依赖
- C++20编译器(GCC 10或更高版本)
cmake>= 3.18
- [可选]
Or-Tools C++
构建依赖
- COIN-OR求解器
- git
- Google Abseil-cpp
- Google Protobuf
- SCIP
- zlib
构建本地库
dlib-face-recognition
需要 Or-Tools
来安装。您可以选择提供一个现有的系统级安装,或者使用此库构建它。
- 在编译时构建它
-
cargo build --features build-native
-
- 使用系统级依赖项
-
cargo build
-
当启用 build-native
功能标志时,将通过 or-tools-sys
安装C++库 Or-Tools
。
对于构建,此库使用 cmake
,因此请确保已安装 cmake
。
build-native
标志默认禁用,这会提高构建时间。
构建Rust软件包
dlib-face-recognition
包含一个默认开启的 solver-all
功能标志。
solver-all
将启用所有受支持的 开源 求解器。关于求解器的最新信息可以在以下链接中找到:[https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported](https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported)
可以使用以下命令禁用 solver-all
标志:cargo build --no-default-features
。
GPL/专有求解器
dlib-face-recognition
包含一个 solver-all-nonfree
功能标志,可以与 cargo build --features solver-all-nonfree
一起使用。
solver-all
将启用所有受支持的求解器,包括 GPL 和/或 专有 求解器。关于求解器的最新信息可以在以下链接中找到:[https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported](https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported)
有关嵌入专有求解器的详细说明,请点击以下链接
- CPLEX: [https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-cplex-support](https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-cplex-support)
- XPRESS: [https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-xpress-support](https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-xpress-support)
默认禁用 solver-all-nonfree
标志,这会提供更长的构建时间。
依赖
~0–1.1MB
~28K SLoC