轻松将Cargo项目交叉编译到Windows MSVC目标
项目描述
cargo-xwin
之前为 cargo-xwinbuild
🚀 通过在GitHub上赞助我 帮助我成为全职开源开发者
轻松将Cargo项目交叉编译到Windows msvc目标。
使用此软件,您同意接受位于 https://go.microsoft.com/fwlink/?LinkId=2086102 的许可协议。
先决条件
- 对于纯Rust项目,无需先决条件。
- 对于C/C++依赖项,请安装 clang(在macOS上运行
brew install llvm
即可)。 - 对于汇编依赖项,通过
rustup component add llvm-tools-preview
或安装 llvm 来安装llvm-tools-preview
组件。
安装
cargo install --locked cargo-xwin
您还可以使用pip进行安装。
pip install cargo-xwin
我们还提供了一个包含预安装wine、cargo-xwin和Rust的 Docker镜像,例如用于构建x86_64 Windows。
docker run --rm -it -v $(pwd):/io -w /io messense/cargo-xwin \
cargo xwin build --release --target x86_64-pc-windows-msvc
使用方法
- 通过rustup安装Rust Windows msvc目标,例如,
rustup target add x86_64-pc-windows-msvc
- 运行
cargo xwin build
,例如,cargo xwin build --target x86_64-pc-windows-msvc
使用wine运行测试
安装wine后,您可以使用 cargo xwin test
命令运行测试,例如,cargo xwin test --target x86_64-pc-windows-msvc
自定义
可以使用以下环境变量或CLI选项自定义Microsoft CRT和Windows SDK。
环境变量 | CLI选项 | 描述 |
---|---|---|
XWIN_ARCH |
--xwin-arch |
要包含的架构,默认为 x86_64,aarch64 ,可能的值:x86, x86_64, aarch, aarch64 |
XWIN_VARIANT |
--xwin-variant |
要包含的变体,默认为 desktop ,可能的值:desktop, onecore, spectre |
XWIN_VERSION |
--xwin-version |
要检索的版本,默认为16,可以是15或16的主要版本,也可以是 <major>.<minor> 版本 |
XWIN_CACHE_DIR |
--xwin-cache-dir |
存放CRT和SDK文件的xwin缓存目录 |
XWIN_INCLUDE_DEBUG_LIBS |
--xwin-include-debug-libs |
是否在安装时包含调试库(默认为false)。 |
CMake支持
一些Rust包使用cmake包来构建C/C++依赖,cargo-xwin将自动生成CMake工具链文件,以便直接进行交叉编译。
需要 ninja 来启用CMake支持。
许可证
本作品采用MIT许可证发布。许可证副本可在LICENSE文件中找到。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
此版本没有可用的源分发文件。请参阅生成分发存档的教程。
构建分发
cargo_xwin-0.17.3-py3-none-win32.whl (3.1 MB 查看散列)
关闭
cargo_xwin-0.17.3-py3-none-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4c2496e49e9fcd471c69c72113f31ca0ea8c11c0be3b89c2597fb68bf196ce5a |
|
MD5 | 3b0ae1d92020e802d49ffcb7631a7586 |
|
BLAKE2b-256 | 574420ca715bcf2d5142d6eac2d6aff341e4e77d6e7710c027a974af380538dc |
关闭
cargo_xwin-0.17.3-py3-none-win32.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fad1831cae03f6a771db4b31d344fb87f0ca5b2899a72f8af91acc42b8b8a0af |
|
MD5 | 49d395bd1a75971f4edc2d33f3cbe7a5 |
|
BLAKE2b-256 | 05e1728465a73963beb9e0019bdf6321f8be30b20a2a6c4e8caf53d3c7a5fe4a |
关闭
cargo_xwin-0.17.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0f65c1dc6a307c700d3bf54a66dfab3ae758f5ce6863293b5d470cf158ae53f4 |
|
MD5 | fafa7b895253190f6bbe1a22405e81f2 |
|
BLAKE2b-256 | ac97f8df0015aa53c9c072b4a5d43e4002813327518f371a640bfe3cd9ca7d92 |
关闭
cargo_xwin-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86c8800205c5c4db9ae6b5714d318067ca5c1180e94acfc92bdfd26450352134 |
|
MD5 | d165b83942f0278e5c8250c4e4d8e53f |
|
BLAKE2b-256 | 759174cfb3c33ada76b5a35589eec4e7e4385366031004acd5f192efb2ee394a |
关闭
cargo_xwin-0.17.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7f0cce07ac4efd4c148d9b77a083679351ea1a8d228fbe117e2bac93ae68d532 |
|
MD5 | 4ab5be7e2de1d095fa6e804f2f42b454 |
|
BLAKE2b-256 | 17974dcac19befdc7d3f9faaeee8e9af714d3a379d5e9b0c90a6950a24e11ba4 |
关闭
cargo_xwin-0.17.3-py3-none-manylinux_2_5_i686.manylinux1_i686.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3f246cb10177a0e5993abbc75139aecfb394642e4d1b4d58d19a5e606e252d8b |
|
MD5 | 79218318e8c70fa8c82499ec424ce496 |
|
BLAKE2b-256 | 3ee019bef868b98e596e86dafd021fd77194aff75cadafa740222b55c2230cbb |
关闭
哈希值 for cargo_xwin-0.17.3-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6813b7747c12b490303fda35aaaba96d4dedbd644459d288e0807f8a7a3929b3 |
|
MD5 | 44918683eff2db0f0b48e8bf76188266 |
|
BLAKE2b-256 | d59959aa0fb1f5094d27e1eca5d2bb69e6a8e1fb960c6099a3d99163e1a362bf |