Rust 1.100.0 将 i686 Windows 目标降级为仅标准库支持

i686-pc-windows-msvc 和 i686-pc-windows-gnu 不再提供主机工具,需交叉编译

UniMgr 技术编辑 来源:技术源整理 20
Rust 1.100.0 将 i686 Windows 目标降级为仅标准库支持

Rust 1.100.0 版本中,i686-pc-windows-msvc Tier 1 目标从带主机工具降级为不带主机工具,i686-pc-windows-gnu Tier 2 目标从带主机工具降级为不带主机工具。标准库构建仍分发,但主机工具如编译器不再可用。构建32位Windows二进制文件需从支持的主机工具链(如64位Windows)交叉编译。i686-pc-windows-msvc 仍作为Tier 1目标进行CI测试。其他32位平台不受影响。

技术要点

Rust 1.100.0 版本对 32 位 Windows 目标进行了以下调整:

配图
配图
  • i686-pc-windows-msvc 目标从 Tier 1 with host tools 降级为 Tier 1 without host tools。
  • i686-pc-windows-gnu 目标从 Tier 2 with host tools 降级为 Tier 2 without host tools。
  • 标准库的构建仍会分发,但主机工具(如编译器)将不再提供。
  • i686-pc-windows-msvc 作为 Tier 1 目标仍会进行 CI 测试。
  • 构建 32 位 Windows 二进制文件需要从仍支持的主机工具链(例如 64 位 Windows 工具链)进行交叉编译。
  • Rust 1.100 之后,无法在 32 位 Windows 主机上安装工具链。
  • 其他 32 位平台不受此变化影响。

原理与背景

此次降级的背景在于 32 位 Windows 开发环境的现实情况。桌面和服务器 32 位仅 x86 CPU 已销售超过 15 年,通用 32 位 Windows 支持已于 2025 年 10 月结束。这意味着这些目标所针对的开发平台几乎已不存在,即使存在通常也不足以支持开发。

此外,在现代 x86_64 硬件上构建 i686 Windows 工具链已出现问题。例如,编译器二进制文件在使用 i686 MSVC 目标构建时会崩溃,GNU C++ 工具链在 LLVM 构建期间会因内存不足(OOM)而失败。

考虑到这些因素,从更好支持的目标进行交叉编译被视为最佳解决方案。因此,Rust 团队决定停止为 i686 Windows 目标生产主机工具,转而依赖交叉编译流程。

落地建议

对于需要构建 32 位 Windows 二进制文件的开发者,建议采取以下通用做法:

  • 使用仍支持的主机工具链(如 64 位 Windows 工具链)进行交叉编译。
  • 确保交叉编译环境配置正确,包括目标三元组、工具链和依赖项。
  • 注意 i686-pc-windows-msvc 目标仍会进行 CI 测试,但 i686-pc-windows-gnu 目标仅作为 Tier 2 支持,且无主机工具。
  • 对于其他 32 位平台,此次变化不影响其支持级别,可继续使用原有方式构建。

在实施交叉编译时,应关注目标平台的兼容性和性能,确保构建过程稳定可靠。由于主机工具不再提供,开发者需自行管理交叉编译环境,这可能涉及额外的配置和维护工作。

技术分享更多资讯

查看全部
布里吉斯游戏引擎更新:波次与技能机制重构
技术分享

布里吉斯游戏引擎更新:波次与技能机制重构

游戏开发者布里吉斯发布最新技术更新,重点重构了敌人波次生成逻辑与干员技能释放机制。此次更新涉及底层数据配置与快照保存系统的优化,为后续数据库更新及前端开发奠定基础。开发者透露将学习Unity引擎技术,并计划未来转向自研引擎,标志着项目从原型向工业化开发的重要转型。

AI 编辑 3
Agent 上下文治理全景原则篇:构建目标导向的智能判断体系
技术分享

Agent 上下文治理全景原则篇:构建目标导向的智能判断体系

本文聚焦 Agent 上下文治理的核心原则,从目标、依据、边界、记忆、探索及进展六个维度,深入剖析上下文机制如何辅助智能体围绕既定任务进行持续且精准的判断。通过明确各机制职责,旨在提升 Agent 在复杂环境下的任务执行效率与稳定性,为构建更可靠的 AI 系统提供理论框架与实践指导。

AI 编辑 3
Python 3.13 引入 Queue.shutdown 解决异步退出难题
技术分享

Python 3.13 引入 Queue.shutdown 解决异步退出难题

Python 3.13 正式引入 Queue.shutdown 方法,旨在解决异步消费者在收到停止信号后难以优雅退出的长期痛点。此前,开发者需手动处理取消信号,常导致部分已取出的任务处理中断或资源泄漏。新特性简化了异步队列的生命周期管理,提升了并发编程的可靠性与代码简洁性,对 Python 异步生态具有积极意义。

AI 编辑 4
游戏团队管理进阶:从被动救火到主动规划
技术分享

游戏团队管理进阶:从被动救火到主动规划

本文基于对游戏团队管理实践的深入思考,指出许多管理者陷入“解决问题”的时间陷阱。通过定期复盘日程,作者发现大量精力耗费在应对架构、需求及人员冲突等突发状况上。文章主张管理者应转变思维,从被动响应转向主动发现潜在问题,优化团队效能,避免陷入低效的救火循环,为游戏行业团队管理提供新的视角。

AI 编辑 3