ржавчина скомпилировать библиотеку x86 на машине x86_64 - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть контейнер Ubuntu x86_64, и cargo build подходит.Но мне нужно собрать версию библиотеки x86 тоже.Насколько я понимаю, мне нужно добавить i686 toolchain и target.

rustup target add i686-unknown-linux-gnu done successful
rustup toolchain install stable-i686-unknown-linux-gnu finished with error
$ rustup toolchain install stable-i686-unknown-linux-gnu
info: syncing channel updates for 'stable-i686-unknown-linux-gnu'
info: latest update on 2018-11-08, rust version 1.30.1 (1433507eb 2018-11-07)
info: downloading component 'rustc'
info: downloading component 'rust-std'
info: downloading component 'cargo'
info: downloading component 'rust-docs'
info: installing component 'rustc'
info: installing component 'rust-std'
info: installing component 'cargo'
info: installing component 'rust-docs'

  stable-i686-unknown-linux-gnu installed - (error reading rustc version)

и

$ rustup  default stable-i686
info: using existing install for 'stable-i686-unknown-linux-gnu'
info: default toolchain set to 'stable-i686-unknown-linux-gnu'

  stable-i686-unknown-linux-gnu unchanged - (error reading rustc version)

Я что-то пропустил или выбрал неправильный подход?

1 Ответ

0 голосов
/ 27 ноября 2018

Вместо того, чтобы менять свою цепочку инструментов, вы должны добавить цель в вашу текущую цепочку инструментов (сначала обязательно вернитесь к своей исходной цепочке инструментов).

$ rustup target install i686-unknown-linux-gnu
$ cargo build --target=i686-unknown-linux-gnu

Конечно, вам нужно установить 32-битные библиотеки в вашей системе, например, в Ubuntu вы устанавливаете их с помощью

$ sudo apt install gcc-multilib

(подробнее об этом см. Как скомпилировать 32-битные приложения в 64-битной Ubuntu? )

...