Я не могу получить кросс-компиляцию из Ubuntu в Windows, работающую - PullRequest
0 голосов
/ 14 июня 2019

Я хочу кросс-компилировать некоторый код Rust из Ubuntu в Windows и получать сообщение об ошибке onexitbegin.

Пытался следовать различным предложениям, но у них нет моего конкретного сообщения об ошибке: 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 / 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 Ответ

2 голосов
/ 14 июня 2019

Если вы получаете сообщения о неопределенной ссылке на

__ 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.

...