Vin*_*ike 0 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
Run Code Online (Sandbox Code Playgroud)
期望建造一些东西,但它会炸毁。输出显示以下内容:/ 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的未定义引用
__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 ./
Run Code Online (Sandbox Code Playgroud)
现在应该为Windows构建可执行文件。