linux 安装 mingw_Rust Windows-GNU 版本与MSYS2-MINGW-W64 整合集成

本文介绍了如何在Windows上使用Rust的GNU工具链与MSYS2-MINGW-W64集成,以解决版本兼容性问题。通过移除Rust自带的mingw、配置Cargo以使用MSYS2的mingw,以及替换crt2.o和dllcrt2.o文件,实现Rust程序链接MSYS2预装库的功能。未来官方可能会提供更好的整合方案。
摘要由CSDN通过智能技术生成

更新:官方调整在2020年2月5日合并进master,之后的nightly版本能够自动检测MINGW-W64路径。期待登陆stable!

本文目的:

在Rust的windows下的gnu toolchain中使用MSYS2的MINGW-W64提供的编译好的/或者编译过程中需要类POSIX环境的那些C/C++库。

纯Rust程序不需要参看本文的内容。

依赖库里需要链接C/C++库的很可能需要——链接报错的典型提示如下:

undefined reference to `__imp___acrt_iob_func'
undefined reference to `__errno'

声明:

这里的内容本质上是一种临时措施。适用于对2017~2018年时期存在的一些不完美的状态进行临时修补。在未来某一时刻,本文内容将不再适用。届时作废。

1. 缘起

1.1 为数众多的编译器们

Rust 使用的链接器是系统提供的,而且Rust的标准库也对libc有依赖。在Linux/Mac等环境下,Rust会使用gcc执行链接。在Windows下,系统没有原生自带链接器。主流的免费C/C++工具链主要有五套,分别是Visual C++、Clang、Mingw-w64 GCC、MSYS2 GCC、CYGWIN GCC。(这里没有包含WSL的情况,也没有包含用的比较少的mingw32 GCC、msys 1.0 GCC、GCC-MCF等等。)

Rust 在Windows下的编译支持主要是两种,分别对应列表里的Visual

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Windows 上使用 MinGW-w64 安装 x86_64-linux-gnu-gcc 工具链和编译器,可以按照以下步骤操作: 1. 下载 MinGW-w64 安装器 可以从 MinGW-w64 官网(https://sourceforge.net/projects/mingw-w64/files/)下载 MinGW-w64 安装器。建议下载最新版本的稳定版(Stable Releases)。 2. 安装 MinGW-w64 运行 MinGW-w64 安装器,并按照提示进行安装。在安装过程中,需要选择以下配置: - Architecture:选择 x86_64。 - Threads:选择 posix。 - Exception:选择 seh。 - Build revision:选择最新版本。 - Destination folder:选择安装目录,例如 C:\mingw-w64。 3. 添加环境变量 将 MinGW-w64 的 bin 目录添加到 PATH 环境变量中。例如,如果 MinGW-w64 安装在 C:\mingw-w64 目录下,则需要将 C:\mingw-w64\bin 添加到 PATH 环境变量中。 4. 安装 x86_64-linux-gnu-gcc 工具链 使用 MinGW-w64 的 Pacman 包管理器安装 x86_64-linux-gnu-gcc 工具链。打开命令提示符或 PowerShell,进入 MinGW-w64 的 bin 目录,然后运行以下命令: ``` pacman -S mingw-w64-x86_64-gcc ``` 这将安装 x86_64-linux-gnu-gcc 工具链及其依赖项。 5. 验证安装 运行以下命令验证 x86_64-linux-gnu-gcc 工具链是否安装成功: ``` x86_64-linux-gnu-gcc --version ``` 如果输出 x86_64-linux-gnu-gcc 的版本信息,则说明安装成功。 注意:在使用 MinGW-w64 的 Pacman 包管理器安装软件包时,可能需要使用管理员权限运行命令提示符或 PowerShell。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值