кросс-компиляция для ARM: ошибка нет такого файла или каталога

Вы можете использовать команду tee:

sort -u filename | tee filename > /dev/null

Команда tee считывает со стандартного ввода и записывает на стандартный вывод и файлы.

2
задан 14 April 2017 в 16:26

3 ответа

Как определить проблему?

file cross_compiled_executable

Содержит что-то вроде:

interpreter /lib/ld-uClibc.so.0

, и проблема в том, что этот файл не существует на цели.

Как определить проблему?

Использовать правильный компилятор:

человек, создавший образ диска, должен предоставить вам крест компилятор или расскажите, как его построить, например с перекрестным движением. скомпилируйте свой собственный образ и кросс-компилятор, например. с Стройком. Вот пример. используйте собственный компилятор для цели. Но в целом цели намного медленнее, чем ваш хост, и пространство ограничено, поэтому вы, вероятно, не хотите этого делать. Вы также можете использовать функциональный эмулятор, такой как QEMU для сборки, а затем запускать программы только на более медленной платформе, например. gem5 или медленная доска.

Просто взломать interpreter потенциально недостаточно, особенно вам нужно обеспечить двоичную совместимость между программой и целевым libc, или интерфейсами программ и ядра (syscalls, /proc и т. д.), если вы пытаетесь использовать -static (целевое ядро ​​может быть слишком старым и не содержать требуемые интерфейсы). Единственное надежное решение - использовать правильную инструментальную цепочку.

0
ответ дан 18 July 2018 в 14:59

Как определить проблему?

file cross_compiled_executable

Содержит что-то вроде:

interpreter /lib/ld-uClibc.so.0

, и проблема в том, что этот файл не существует на цели.

Как определить проблему?

Использовать правильный компилятор:

человек, создавший образ диска, должен предоставить вам крест компилятор или расскажите, как его построить, например с перекрестным движением. скомпилируйте свой собственный образ и кросс-компилятор, например. с Стройком. Вот пример. используйте собственный компилятор для цели. Но в целом цели намного медленнее, чем ваш хост, и пространство ограничено, поэтому вы, вероятно, не хотите этого делать. Вы также можете использовать функциональный эмулятор, такой как QEMU для сборки, а затем запускать программы только на более медленной платформе, например. gem5 или медленная доска.

Просто взломать interpreter потенциально недостаточно, особенно вам нужно обеспечить двоичную совместимость между программой и целевым libc, или интерфейсами программ и ядра (syscalls, /proc и т. д.), если вы пытаетесь использовать -static (целевое ядро ​​может быть слишком старым и не содержать требуемые интерфейсы). Единственное надежное решение - использовать правильную инструментальную цепочку.

0
ответ дан 24 July 2018 в 20:32

Как определить проблему?

file cross_compiled_executable

Содержит что-то вроде:

interpreter /lib/ld-uClibc.so.0

, и проблема в том, что этот файл не существует на цели.

Как определить проблему?

Использовать правильный компилятор:

человек, создавший образ диска, должен предоставить вам крест компилятор или расскажите, как его построить, например с перекрестным движением. скомпилируйте свой собственный образ и кросс-компилятор, например. с Стройком. Вот пример. используйте собственный компилятор для цели. Но в целом цели намного медленнее, чем ваш хост, и пространство ограничено, поэтому вы, вероятно, не хотите этого делать. Вы также можете использовать функциональный эмулятор, такой как QEMU для сборки, а затем запускать программы только на более медленной платформе, например. gem5 или медленная доска.

Просто взломать interpreter потенциально недостаточно, особенно вам нужно обеспечить двоичную совместимость между программой и целевым libc, или интерфейсами программ и ядра (syscalls, /proc и т. д.), если вы пытаетесь использовать -static (целевое ядро ​​может быть слишком старым и не содержать требуемые интерфейсы). Единственное надежное решение - использовать правильную инструментальную цепочку.

0
ответ дан 31 July 2018 в 23:33

Другие вопросы по тегам:

Похожие вопросы: