错误:找不到链接器 `x86_64-w64-mingw32-gcc`

问题描述 投票:0回答:3

我正在使用MacOS Big Sur,我正在尝试交叉编译到Windows,但问题是,这个“错误:链接器

x86_64-w64-mingw32-gcc
未找到”阻止我这样做,这是我的货物依赖项:

[dependencies]
rand = "0.8.4"
macroquad = "0.3.13"
perlin_rust = "0.1.0"
libm = "0.2.2"

我尝试过 Cargo Clean/Update,并且尝试过 mvsc 而不是 gnu

rust compiler-errors rust-cargo
3个回答
5
投票

TLDR;
除了使用 rustup 安装交叉目标之外,您还需要安装一个实际的交叉链接器并使用 Cargo 配置文件或环境变量告诉 Cargo

您似乎正在尝试交叉编译您的包。 您可以在这里阅读有关交叉编译的更多信息; 简而言之,编译器是一个程序,它获取您的文本源代码并生成您的操作系统和 CPU 可以理解的内容。

当您为正在开发的平台构建软件时,一切都很好。您拥有所有工具,但是当您想要针对另一个平台或操作系统时,您需要一个编译器,该编译器是为在您的计算机上工作而生成的,但输出应该在目标平台/操作系统上工作的二进制文件。

因此,在您的情况下,您需要安装适用于 mingw 目标的 mac 的交叉工具链,因为 rust 本身没有交叉链接器。一旦你获得了交叉工具链,你所需要做的就是告诉 Cargo 如何找到它。

这里是一个旨在让交叉编译不那么痛苦的项目。

我也强烈建议你阅读货物书 config 在这里您可以看到告诉货物有关交联剂的方法之一 另一种方法是使用环境变量(我更喜欢它并且更容易与 makefile 一起使用) 下面你可以看到我的 makefile 中的一个示例 enter image description here 再次货物簿指的是它enter image description here

总体交叉编译很痛苦,我花了相当长的时间来理解它的机制,但这是值得的,而不是复制粘贴我在博客上找到的命令。 我还觉得它缺乏严格的文档。 Cargo 书没有告诉你任何关于寻找链接器的信息,假设你已经知道这一点,并且图片交叉编译就像在使用 rustup 安装目标工具链后开箱即用的东西。


1
投票

我也遇到了同样的问题,原因是我的项目目录中有特殊字符。例如重音 á、í 等。 所以我将它们更改为常规字符,问题就不再出现了。


0
投票
sudo apt-get install mingw-w64

应该可以解决您的问题。它不是由 rustup 安装的,因此必须单独安装。

© www.soinside.com 2019 - 2024. All rights reserved.