我无法从Ubuntu交叉编译到Windows

时间:2019-06-14 16:30:47

标签: compiler-errors rust rust-cargo

我想从Ubuntu到Windows交叉编译一些Rust代码,并收到有关onexitbegin的错误。

试图遵循各种建议,但是它们没有我的特定错误消息:     crt2.o:crtexe.c:(.rdata $ .refptr .__ onexitend [.refptr .__ onexitend] + 0x0):对`__onexitend'的未定义引用           collect2:错误: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/crt2.o :crtexe.c :(。rdata $ .refptr .__ onexitbegin [.refptr .__ onexitbegin] + 0x0):未定义对__onexitbegin' /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/crt2.o:crtexe.c:(.rdata$.refptr.__onexitend[.refptr.__onexitend]+0x0): undefined reference to __ onexitend'

的引用

1 个答案:

答案 0 :(得分:2)

如果您收到有关未定义引用的消息

__ 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构建。