轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
messense/cargo-zigbuild
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

cargo-zigbuild Docker 镜像下载 - 轩辕镜像

cargo-zigbuild 镜像详细信息和使用指南

cargo-zigbuild 镜像标签列表和版本信息

cargo-zigbuild 镜像拉取命令和加速下载

cargo-zigbuild 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

cargo-zigbuild
messense/cargo-zigbuild

cargo-zigbuild 镜像详细信息

cargo-zigbuild 镜像标签列表

cargo-zigbuild 镜像使用说明

cargo-zigbuild 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

使用zig作为链接器编译Cargo项目,简化交叉编译过程。
2 收藏0 次下载activemessense镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

cargo-zigbuild 镜像详细说明

cargo-zigbuild 使用指南

cargo-zigbuild 配置说明

cargo-zigbuild 官方文档

cargo-zigbuild

![CI]([] ![Crates.io]([] ![docs.rs]([] ![PyPI]([] ![Docker Image]([***]

🚀 支持我成为全职开源开发者:在GitHub上赞助我

使用zig作为链接器编译Cargo项目,实现更简单的交叉编译。

安装

cargo install --locked cargo-zigbuild

也可通过pip安装,会自动安装ziglang:

pip install cargo-zigbuild

我们还提供Docker镜像,除cargo-zigbuild和Rust外,预安装了macOS SDK。例如,构建x86_64 macOS目标:

  • Linux Docker镜像(ghcr.io、Docker Hub):
docker run --rm -it -v $(pwd):/io -w /io ghcr.io/rust-cross/cargo-zigbuild \
  cargo zigbuild --release --target x86_64-apple-darwin

![打包状态]([***]

使用方法

  1. 按照***文档安装zig,在macOS、Windows和Linux上也可通过pip3 install ziglang从PyPI安装zig
  2. 通过rustup安装Rust目标,例如:rustup target add aarch64-unknown-linux-gnu
  3. 运行cargo zigbuild,例如:cargo zigbuild --target aarch64-unknown-linux-gnu

指定glibc版本

默认情况下,*-gnu的--target会让Zig隐式构建基于Zig版本的默认glibc版本(v12到v14版本默认glibc 2.28)。

要为特定最低glibc版本构建,可在--target值后添加版本后缀。例如,为glibc 2.17编译--target aarch64-unknown-linux-gnu:

cargo zigbuild --target aarch64-unknown-linux-gnu.2.17

[!NOTE] glibc版本目标功能存在各种注意事项:

  • 若未提供--target,则不使用Zig,命令实际运行常规cargo build
  • 若指定无效glibc版本,cargo-zigbuild不会转发zig cc关于所选回退版本的警告
  • 此功能不一定与在构建主机上动态链接到特定glibc版本的行为匹配
    • 可指定版本2.32,但在仅提供2.31的主机上运行时应报错却未报错
    • 而指定2.33在glibc 2.31主机上会正确检测为不兼容
  • 某些RUSTFLAGS(如-C linker)会退出使用Zig,而-L path/to/files会让Zig忽略-C target-feature=+crt-static
  • -C target-feature=+crt-static用于静态链接glibc版本不受支持(上游zig cc缺乏支持)

提示 - cargo zigbuild找不到已存在的头文件(*.h)或库

可能需要在cargo zigbuild命令前添加以下环境变量,包含系统路径:

  • CFLAGS='-isystem /usr/include'
  • RUSTFLAGS='-L /usr/lib64'

cargo zigbuild始终使用zig cc的-nostdinc选项,排除标准头文件位置(如/usr/include)。当Zig配置了--target时,这也是默认行为,此外还会退出标准系统搜索路径。

这可能导致cargo build成功而cargo zigbuild失败(需额外配置)的常见情况:

# 无法找到构建所需的头文件:
fatal error: 'libelf.h' file not found

# 无法找到要链接的共享库:
error: unable to find dynamic system library 'elf' using strategy 'no_fallback'. searched paths

有多种解决方法,但对于/usr/include等系统路径,需注意避免将系统glibc头文件与Zig自身提供的glibc头文件混合,否则会产生类似CPATH=/usr/include的错误:

In file included from /usr/local/lib64/python3.13/site-packages/ziglang/lib/libunwind/src/gcc_personality_v0.c:21:
In file included from /usr/local/lib64/python3.13/site-packages/ziglang/lib/libunwind/include/unwind.h:18:
In file included from /usr/include/stdint.h:26:
In file included from /usr/include/bits/libc-header-start.h:33:
/usr/include/features.h:516:9: warning: '__GLIBC_MINOR__' macro redefined [-Wmacro-redefined]
  516 | #define __GLIBC_MINOR__ 41
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define __GLIBC_MINOR__ 37
      |

当系统包将项目构建所需的头文件添加到/usr/include时,需让Zig仅对这些头文件回退到/usr/include,同时使用自身的glibc头文件。可通过zig cc -isystem /usr/include实现,对于cargo zigbuild,可通过环境变量CFLAGS='-isystem /usr/include'配置。

对于共享库的类似问题,若包将系统库安装在/usr/lib64,通常使用LDFLAGS='-L /usr/lib64',但rustc和cargo不读取此环境变量,需为带有build.rs的 crate 配置搜索路径以链接动态/静态库。此时需使用RUSTFLAGS='-L /usr/lib64'。

提示 - 验证所需最低GLIBC版本

若未剥离构建二进制文件的符号,在Linux上可运行以下脚本扫描glibc版本化符号,找到最高版本(运行所需最低版本):

  1. 创建文件**/usr/local/bin/get-min-glibc:**

    #!/bin/bash
    
    FILE_NAME=$1
    readelf -W --version-info --dyn-syms ${FILE_NAME} \
      | grep 'Name: GLIBC' \
      | sed -re 's/.*GLIBC_(.+) Flags.*/\1/g' \
      | sort -t . -k1,1n -k2,2n \
      | tail -n 1
    
  2. 使脚本可执行:

    chmod +x /usr/local/bin/get-min-glibc
    
  3. 使用可执行文件/库路径运行命令:

    $ get-min-glibc target/x86_64-unknown-linux-gnu/release/hello-world
    2.28
    

macOS universal2目标

cargo-zigbuild支持特殊的universal2-apple-darwin目标,在Rust 1.64.0及更高版本上构建macOS universal2二进制文件/库。

rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
cargo zigbuild --target universal2-apple-darwin

注意

目前Cargo的--message-format选项在universal2目标上不工作。

注意事项

  1. 目前仅支持Linux和macOS目标,其他目标平台若可正常工作可添加,欢迎提交PR
  2. CI仅定期测试当前Ruststable和nightly版本,其他版本可能不工作

上游zig的已知问题:

  1. zig cc: 根据clang解析-target和-mcpu/-march/-mtune标志: 某些Rust目标不被zig cc识别(如armv7-unknown-linux-gnueabihf),在#58中通过使用-mcpu=generic和显式传递目标功能作为 workaround
  2. 交叉编译时链接darwin框架(如CoreFoundation)的能力: 设置SDKROOT环境变量为macOS SDK路径作为 workaround
  3. zig缺少某些compiler_rt函数,可能导致某些目标出现未定义符号错误。另见:zig compiler-rt状态
  4. CPU功能未传递给clang

许可证

本作品以MIT许可证发布。许可证副本见LICENSE文件。

查看更多 cargo-zigbuild 相关镜像 →
lukemathwalker/cargo-chef logo
lukemathwalker/cargo-chef
by lukemathwalker
在Rust工具链基础上预安装cargo-chef的CI镜像,用于优化Rust Docker构建中的层缓存,加速依赖处理流程。
181M+ pulls
上次更新:22 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.