Недавно я экспериментировал с кросс-компиляцией с помощью GCC и обнаружил довольно сложную область — цепочки инструментов.
Я не совсем понимаю это, так как у меня сложилось впечатление, что GCC может создавать двоичный машинный код для большинства распространенных архитектур, и все, что действительно имеет значение, это то, с какими библиотеками вы связываетесь и какой тип исполняемого файла создается.
Может ли GCC не делать все это самостоятельно? С одной сборкой GCC, всеми соответствующими библиотеками и правильными флагами, отправленными в GCC, могу ли я создать исполняемый файл PE для машины с Windows x86, затем создать исполняемый файл ELF для встроенного устройства Linux MIPS и, наконец, исполняемый файл для OSX PowerPC машина? Если нет, может ли кто-нибудь объяснить, как вы этого добьетесь?