V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zijiren
V2EX  ›  程序员

cargo/rust 交叉构建工具,无需 wsl/docker/colima,可在 windows 上原生运行

  •  
  •   zijiren · 19 小时 20 分钟前 · 654 次点击

    大家好,我构建了一套交叉编译工具链,支持在 Windows 、macOS 或 Linux 上为其他平台构建二进制文件,且无需 WSL 、Docker 或 Colima 。

    例如,你可以在 Windows 机器上构建可在 Linux 上运行的可执行程序。

    用法很简单:

    cargo install cargo-cross
    cargo cross build --target x86_64-unknown-linux-musl
    cargo cross build --target x86_64-unknown-linux-glibc --glibc-version 2.42
    cargo cross build --target x86_64-pc-windows-gnu
    

    支持:

    windows 构建到 windows/linux/freebsd/android

    linux 构建到 windows/linux/macos/ios/freebsd/android

    macos 构建到 windows/linux/macos/ios/freebsd/android

    你还可以选择使用的是 glibc 还是 musl libc ,甚至可以选择 glibc 版本(支持 2.28-2.42 )

    项目地址: https://github.com/zijiren233/cargo-cross

    求 star

    17 条回复    2026-01-14 15:18:42 +08:00
    dianso
        1
    dianso  
       19 小时 16 分钟前
    官方竟然没有吗
    还是喜欢 go 的交叉编译
    zijiren
        2
    zijiren  
    OP
       19 小时 13 分钟前
    @dianso go 交叉构建挺简单的,但是 cgo 就比较麻烦了,也是类似的思路: https://github.com/zijiren233/go-cross

    只不过 cgo 的交叉构建我有段时间没维护了,没有 cargo-cross 功能多
    iorilu
        3
    iorilu  
       19 小时 4 分钟前
    唯独 windows 不能编译 macos 吗
    zijiren
        4
    zijiren  
    OP
       19 小时 2 分钟前
    @iorilu 目前是的😂
    encro
        5
    encro  
       6 小时 22 分钟前
    不是本来就支持吗?
    Riddler2023
        6
    Riddler2023  
       5 小时 21 分钟前
    zijiren
        7
    zijiren  
    OP
       5 小时 18 分钟前
    @Riddler2023 我写的这个不需要 docker ,并且使用最新工具链 gcc15.2 以及支持多种 glibc 版本
    zijiren
        8
    zijiren  
    OP
       5 小时 17 分钟前
    @encro llvm 确实是原生支持交叉构建,但是对于 libc/ld(linker)需求是需要 c 编译器支持的
    ljkgpxs
        9
    ljkgpxs  
       4 小时 34 分钟前
    刚好最近在做自动化编译多平台,我来试试,顺便问下,有没有办法支持编译 x86_64-win7-windows ,目前我都是手动使用 cargo +nightly build --target x86_64-win7-windows-msvc -Zbuild-std --release 编译,发布版本有点麻烦,还得自己打包
    lete
        10
    lete  
       4 小时 13 分钟前
    牛的,看上去不错 star
    ljkgpxs
        11
    ljkgpxs  
       4 小时 12 分钟前
    有没有考虑增加 glibc 2.17 版本,用来编译动态库,我这接触的不少企业还都在用 centos7
    mlhiter955
        12
    mlhiter955  
       3 小时 58 分钟前
    有点意思哈
    zijiren
        13
    zijiren  
    OP
       3 小时 42 分钟前
    @ljkgpxs 目前不支持 msvc 的 windows ,需要手动安装 vs 。目前只支持 windows-gnu
    zijiren
        14
    zijiren  
    OP
       3 小时 39 分钟前
    @ljkgpxs 可以考虑支持更旧版本的 glibc 。除了 2.17 还有哪些特殊的 glibc 版本曾经比较流行吗
    Al0rid4l
        15
    Al0rid4l  
       2 小时 8 分钟前
    zijiren
        16
    zijiren  
    OP
       1 小时 53 分钟前
    @Al0rid4l libc 支持的种类不一样
    ljkgpxs
        17
    ljkgpxs  
       17 分钟前
    @zijiren 我这里碰到的有 2.17 、2.28 、2.38 ,比 2.17 更老的就没碰到了,客户装新服务器基本上都是 2.28 以上
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 479ms · UTC 07:35 · PVG 15:35 · LAX 23:35 · JFK 02:35
    ♥ Do have faith in what you're doing.