"Создание кросс-компилятора значительно сложнее, чем создание компилятора, предназначенного для платформы, на которой он работает."
Проблема существует из-за способа создания и доступа к библиотекам.
В обычной ситуации все библиотеки расположены в определенном месте и используются всеми приложениями в этой системе. Все механизмы сборки и программное обеспечение предполагают расположение библиотек. файлы make, компиляторы и т. д. зависят от идеи, что они могут перейти в конкретное место и найти то, что им нужно.
Однако в случае кросс-компиляции кросс-компилятор, файлы создания и т. Д. Не могут делать эти предположения - если они это сделают, они будут связывать неправильные библиотеки.
Так что на самом деле все сводится к тому, что разработчики делали определенные предположения на раннем этапе, и мы застряли с этим.
Сложнее, когда вы создаете корневые файловые системы, поскольку unix знает только об одной корневой файловой системе. Когда вы создаете другую корневую файловую систему, вы должны создать специальную среду, которая позволяет вам манипулировать ею, не затрагивая настоящую корневую файловую систему.
-Adam