当前位置: 首页 > 知识库问答 >
问题:

我无法从Ubuntu到Windows进行交叉编译

高化
2023-03-14

我试图遵循各种建议,但它们没有我的特定错误消息:crt2.o:crtexe.c:(.rdata$.refptr.__onexitend[.refptr.__onexitend]+0x0):未定义对`__onexitend'的引用collect2:error:ld返回1退出状态

cargo build --release --target x86_64-pc-windows-gnu

希望得到一些东西,但它爆炸了。输出如下所示:/usr/bin/x86_64-w64-mingw32-ld://home/vince/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/rustlib/x86_64-cws-gnu/lib/crt2.o:crtexe.c:(.rdata$.refptr.__onexitbegin[.refptr.__onexitbegin]+0x0):对6_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o:crtexe.c:(.rdata$.refptr.__onexitend[.refptr.__onexitend]+0x0):对__onexitend'的未定义引用

共有1个答案

年凯康
2023-03-14

__onexitbegin`或类似的内容,您可能有CRT2.O的旧版本,而不是ming可用的版本。我做了!(在稳定锈1.35上运行)。

在您的终端中尝试此操作,看看是否有帮助:

cd ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/

mv crt2.o crt2.o.bak

cp /usr/x86_64-w64-mingw32/lib/crt2.o ./

您的可执行文件现在应该为Windows构建。

 类似资料:
  • 问题内容: 我已经安装在Windows机器上的Go 1.2,写了一个虚拟的程序和设置环境变量,并以“AMD64”及“LINUX”。 当我发出“ ”命令时,出现错误: 这是什么意思? 问题答案: 它告诉您需要先构建所有工具,然后才能使用它们。 如果您的Windows GOARCH是amd64,则可以通过运行以下小批处理程序来“构建”所有必需的工具: 如果成功,那么您应该能够执行您所描述的操作(只使用

  • 问题内容: 我想使用Linux x86_64主机交叉编译Windows x86_64目标的Qt库(最终是我的应用程序)。我感觉自己已经接近了,但是我可能对该过程的某些部分有一个根本性的误解。 首先,在我的Fedora机器上安装所有mingw软件包,然后修改qmake.conf文件以适合我的环境。但是,我似乎对Qt:和的一些看似显而易见的配置选项感到困惑。Qt文档说应该是主机体系结构(要在其中进行编

  • 问题内容: 基本上,我在Linux上进行开发时,尝试将最简单的代码编译到Windows。 我通过搜索互联网找到了这些命令: 可悲的是,它们都不起作用。它给我关于标准箱丢失的错误 有没有办法在Windows上运行的Linux上编译代码? 问题答案: Rust发行版仅提供主机系统的编译库。但是,根据Rust上Arch Linux的Wiki页面 ,您可以从系统目录中适当位置(位于或中,具体取决于Wind

  • 我使用sshfs将目标设备的(Beaglebone Black,ARM arch)根安装到主机上的一个文件夹中,并尝试使用gcc的选项进行交叉编译。 但是有一个问题--有些include头文件不仅位于目标设备的/usr/include文件夹中,而且位于其子文件夹中。还有/usr/lib/arm-linux-gnueabihf文件夹。 “Hello World”示例编译失败 因为位于/usr/inc

  • 按照本教程,我安装了所有提到的工具链。在“.bashrc”文件中选择合适的工具链“gcc-linaro-arm-linux-gnueabihf-raspbian”之后。在我提交“source.bashrc”之后,但是“arm-linux-gnueabi-gcc-v”不起作用。 这是我在“.bashrc”文件中的行: 这是我的bin文件夹: 使用Eclipse我可以为Raspberry编译。它编译正

  • 问题内容: 要使用Qt SDK在Linux中创建应用程序,应该在Linux中交叉编译应用程序还是在Windows中交叉编译应用程序? 问题答案: 您需要 在 Linux上 针对 Windows 进行交叉编译。 编辑: 在 Linux 上安装MinGW 。 *在 *Linux 上 交叉编译 您的Qt代码。应该生成Windows二进制文件( .exe )。 大功告成 使用Qt运行时库在任何Window