rust、go交叉编译

我爱海鲸 2025-08-23 23:25:51 暂无标签

简介linux、windows

一、rust编译文件

cargo build
或
cargo build --release 发布构建

二、安装 x86_64-unknown-liunx-musl target

rustup target add x86_64-unknown-linux-musl

三、修改cargo配置

  • 在用户目录下 ./用户/用户目录/.cargo/config文件;打开文件添加下面配置
    [target.x86_64-unknown-linux-musl]
    linker = "rust-lld"

四、交叉编译

cargo build --target x86_64-unknown-linux-musl
或
cargo build --target x86_64-unknown-linux-musl --release 发布构建

参考文章:rust在windows上编译成liunx可执行程序 - hziwei - 博客园 (cnblogs.com)

2025-08-23 start:

上面打包的时候会出现一个报错:

 --- stderr


  error occurred in cc-rs: failed to find tool "x86_64-linux-musl-gcc": program not found (see https://docs.rs/cc/latest/cc/#compile-time-requirements for help)

首先在musl.cc网站下载对应的x86_64-linux-musl-cross.tgz,解压到指定目录,然后配置系统环境变量

musl libc toolchains | static cross/native toolchains

通过网盘分享的文件:x86_64-linux-musl.zip
链接: https://pan.baidu.com/s/1aCiYR7H3K1PIbJcsG_np9A 提取码: 2hve 

解压后配置环境变量(I:\orther\software\x86_64-linux-musl-cross\bin)

 验证
x86_64-linux-musl-gcc -v
... #省略一堆,最后输出版本号
gcc version 9.2.1 20191214 (GCC)

在项目中的.cargo/config.toml文件配置中:

[net]
git-fetch-with-cli = true

[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]

[target.x86_64-unknown-linux-musl]
linker = "x86_64-linux-musl-gcc"

[build]
rustc-wrapper = ""

# Windows SSL配置
[env]
CARGO_HTTP_CHECK_REVOKE = "false"

# 国内镜像源配置
[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"

[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"

[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"

参考:

【RUST 实战】交叉编译之Windows To Linux-阿里云开发者社区

Windows 10 配置Rust交叉编译Linux应用程序-musl_win10 musl-cross-CSDN博客

Rust交叉编译出现错误(Windows->Linux)? - 知乎

end

2024-09-02 start:

golang在windows环境下build生成linux程序 - 知乎 (zhihu.com)

end

2025-06-10 start:

go version
# 查看之前的golang编译环境
# 设置成linux对应的
set GOARCH=amd64
go env -w GOARCH=amd64
set GOOS=linux
go env -w GOOS=linux
​
​
go build -o [目标可执行程序] [源程序]
# 例子
go build -tags dev -o D:\MasterStudy\wormhole\build\hole main.go
​
​
# 还原之前的编译环境
​
set GOARCH=amd64
go env -w GOARCH=amd64
set GOOS=windows
go env -w GOOS=windows

end

你好:我的2025