Как и когда использовать опцию -mbig-endian gcc на AArch64? - PullRequest
0 голосов
/ 30 апреля 2019

Я попытался использовать опцию -mbig-endian gcc на AArch64 (Raspberry Pi 3 Model B с конфигурацией порядка байтов с прямым порядком байтов) с целью чтения и записи в память в порядке байтов с прямым порядком байтов. Я получил следующую ошибку, и компиляция прекращена.

/usr/include/gnu/stubs.h:11:11: fatal error: gnu/stubs-lp64_be.h: No such file or directory `#include <gnu/stubs-lp64_be.h>`

Я пошел в эту папку и не смог найти этот файл. Я что-то упустил?

В сетевой документации gcc сказано, что опция -mbig-endian генерирует код с прямым порядком байтов. Что именно это значит?

1 Ответ

0 голосов
/ 02 мая 2019

Вы ничего не пропускаете, но кажется, что даже наборы инструментов gcc, предоставляемые ARM, не позволяют использовать -mbig-endian с aarch64-linux-gnu-gcc или -mlittle-endian с aarch64_be-linux-gnu-gcc : в обоих случаях будет отсутствовать файл .h, связанный с порядком байтов 'alien'.

Это, вероятно, означает, что вы должны просто использовать aarch64_be-linux-gnu-gcc для кросс-компиляции исполняемых файлов Linux Aarch64 с прямым порядком байтов.Но вы все равно не сможете запустить эти исполняемые файлы в системе Linux с прямым порядком байтов aarch64.

...