Closed 1225754321 closed 5 months ago
直接用 github 的 main 分支试试,应该已经升级过了,只是没有发布新版本。
好的,万分感谢
改用main分支后还是有一样的问题
salvo = { git = "https://github.com/salvo-rs/salvo.git", branch = "main", features = [
"serve-static",
"quinn",
"logging",
] }
The following warnings were emitted during compilation:
warning: ring@0.17.8: Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Is `musl-gcc` installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)
warning: ring@0.17.8: Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Is `musl-gcc` installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)
error: failed to run custom build command for `ring v0.17.8`
Caused by:
process didn't exit successfully: `D:\git\urlmock\target\release\build\ring-7a3d44b58d2184a0\build-script-build` (exit code: 1)
--- stdout
cargo:rerun-if-env-changed=RING_PREGENERATE_ASM
cargo:rustc-env=RING_CORE_PREFIX=ring_core_0_17_8_
OPT_LEVEL = Some("3")
TARGET = Some("x86_64-unknown-linux-musl")
HOST = Some("x86_64-pc-windows-msvc")
cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-musl
CC_x86_64-unknown-linux-musl = None
cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_musl
CC_x86_64_unknown_linux_musl = None
cargo:rerun-if-env-changed=TARGET_CC
TARGET_CC = None
cargo:rerun-if-env-changed=CC
CC = None
RUSTC_LINKER = Some("rust-lld")
cargo:rerun-if-env-changed=CROSS_COMPILE
CROSS_COMPILE = None
cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
cargo:warning=Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Is `musl-gcc` installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)
cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-musl
CFLAGS_x86_64-unknown-linux-musl = None
cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_musl
CFLAGS_x86_64_unknown_linux_musl = None
cargo:rerun-if-env-changed=TARGET_CFLAGS
TARGET_CFLAGS = None
cargo:rerun-if-env-changed=CFLAGS
CFLAGS = None
cargo:warning=Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Is `musl-gcc` installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)
--- stderr
error occurred: Failed to find tool. Is `musl-gcc` installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)
warning: build failed, waiting for other jobs to finish...
打包相关:
暂时无法在win下直接使用`cargo build -r --target x86_64-unknown-linux-musl`, 进行交叉编译
这里提供两个方案:
1. 直接到linux环境进行编译为linux二进制
2. 使用zig进行交叉编译,步骤如下
1. 安装zig
1. 安装Scoop
1. 打开Windows Powershell
2. 在PowerShell命令控制台执行: `iex (new-object net.webclient).downloadstring('https://get.scoop.sh')`
2. 使用scoop安装zig: 在PowerShell命令控制台执行: `scoop install zig`
2. 安装cargo-zigbuild
1. `cargo install cargo-zigbuild`
3. 使用zigbuild进行编译
1. 注意需要调整`.cargo/config.toml`
1. ```toml
[target.x86_64-unknown-linux-musl]
linker = "rust-lld"
rustflags = ["-C", "linker-flavor=ld.lld"]
改为
```toml
[target.x86_64-unknown-linux-musl]
```
2. 执行编译命令: `cargo zigbuild -r --target x86_64-unknown-linux-musl`
Describe the bug features选择quinn后,无法在windows上交叉编译为linux二进制 查看Cargo.lock发现是因为quinn-proto使用的ring库版本为0.16.20 其他库调用的是ring为0.17.8就可以正常编译
To Reproduce Steps to reproduce the behavior:
cargo build -r --target x86_64-unknown-linux-musl
warning: ring@0.17.8: Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Is
musl-gcc
installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help) warning: ring@0.17.8: Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Ismusl-gcc
installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)error: failed to run custom build command for
ring v0.17.8
Caused by: process didn't exit successfully:
D:\git\urlmock\target\release\build\ring-7a3d44b58d2184a0\build-script-build
(exit code: 1) --- stdout cargo:rerun-if-env-changed=RING_PREGENERATE_ASM cargo:rustc-env=RING_CORE_PREFIX=ring_core_0_178 OPT_LEVEL = Some("3") TARGET = Some("x86_64-unknown-linux-musl") HOST = Some("x86_64-pc-windows-msvc") cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-musl CC_x86_64-unknown-linux-musl = None cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_musl CC_x86_64_unknown_linux_musl = None cargo:rerun-if-env-changed=TARGET_CC TARGET_CC = None cargo:rerun-if-env-changed=CC CC = None RUSTC_LINKER = Some("rust-lld") cargo:rerun-if-env-changed=CROSS_COMPILE CROSS_COMPILE = None cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT cargo:warning=Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Ismusl-gcc
installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help) cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None DEBUG = Some("false") CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2") cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-musl CFLAGS_x86_64-unknown-linux-musl = None cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_musl CFLAGS_x86_64_unknown_linux_musl = None cargo:rerun-if-env-changed=TARGET_CFLAGS TARGET_CFLAGS = None cargo:rerun-if-env-changed=CFLAGS CFLAGS = None cargo:warning=Compiler family detection failed due to error: ToolNotFound: Failed to find tool. Ismusl-gcc
installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)--- stderr
error occurred: Failed to find tool. Is
musl-gcc
installed? (see https://github.com/rust-lang/cc-rs#compile-time-requirements for help)