Кросс-компиляция проекта Rust завершается неудачно из-за отсутствия библиотек

#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 и, следовательно, ее следует создать.