Я кросс-компилирую библиотеку с открытым исходным кодом oRTP для процессора MIPS (little-endian arch) Моя система разработки - i386 linux. Я запускаю скрипт настройки как
./configure --host=mips-linux
Сценарий configure использует компилятор mips-linux-gnu-gcc и создает библиотеку. Однако, когда я пытаюсь связать библиотеку с исполняемым файлом, я получаю неопределенные символы, говорящие о том, что библиотека ortp создана для big-endian, а цель - little-endian.
Выполнение команды file
на существующем исполняемом файле в целевой программе показывает
ELF 32-битный исполняемый LSB, MIPS, MIPS32 rel2 версия 1, динамически
связанный (использует общие библиотеки), для GNU / Linux 2.6.12, с неизвестным
возможность 0xf41 = 0x756e6700, с неизвестной возможностью 0x70100 =
0x1040000, без зачистки
И выполнение file
в объектном файле ortp показывает
ELF 32-разрядный MSB с возможностью перемещения, MIPS, MIPS32 rel2 версия 1 (SYSV), с
неизвестная возможность 0x41000000 = 0xf676e75, с неизвестной возможностью
0x10000 = 0x70401, без зачистки
Несмотря на то, что оба построены для MIPS, существующим исполняемым файлом является LSB, где в качестве файла скомпилированного ortp используется MSB.
Как мне скомпилировать для MIPS и LSB, чтобы связывание прошло нормально?