#linux #gcc #rust #raspberry-pi #cross-compiling
Вопрос:
Я пытаюсь скомпилировать проект Rust с x86-64 до armv7 (Raspberry Pi 3B ). Этот проект использует cxx
для некоторых своих функций.
Я настроил набор инструментов, установил armv7-unknown-linux-gnueabihf
цель с rustup
помощью и после некоторых проб и ошибок скопировал необходимые файлы заголовков /usr/arm-none-linux-gnueabihf/include
. Я также скопировал /usr/lib/arm-linux-gnueabihf
каталог с живого Raspbian в /usr/arm-none-linux-gnueabihf/lib
.
Затем я выполнил cargo build --target armv7-unknown-linux-gnueabihf
. Это приводит меня к следующей ошибке: https://pastebin.com/2LVZnQMQ.
Затем я убедился, что libc.so.6
это так /usr/arm-none-linux-gnueabihf/lib
и libc_nonshared.a
есть /usr/arm-linux-gnueabihf/
. Это не решило проблему.
Я теряюсь в догадках, чего еще хочет компоновщик. Что еще мне нужно скопировать, чтобы успешно сравнить двоичный файл?
Комментарии:
1. Можете ли вы успешно выполнить кросс-компиляцию pure Rust hello world? Можете ли вы получить чистый C hello world для успешной кросс-компиляции?
2. Я был уверен, что это сработало раньше. Он снова жалуется на отсутствие
libc
. Я предполагаю, что мне придется установить arm-linux-gnueabihf-glibc , да?3. Возможно. Если это не сработает, что не сработало: C , ржавчина или и то, и другое?
4. Оба они завершаются с одним и тем же сообщением об ошибке. До сих пор попытка установить glibc оказалась очень сложной задачей. Я вернусь, если что-нибудь выясню
5. Возможно, стоит сообщить о проблеме с Rust, потому
armv7-unknown-linux-gnueabihf
что это цель уровня 2 и, следовательно, ее следует создать.