Как создать компилятор gcc в Linux, который собирает как 32-битный, так и 64-битный код - PullRequest
0 голосов
/ 07 сентября 2018

Я следовал инструкциям в следующем URL для создания компилятора gcc для Linux:

https://solarianprogrammer.com/2016/10/07/building-gcc-ubuntu-linux/

Полученный компилятор без проблем создает 64-битный код.

Однако, когда я пытаюсь создать 32-битный код (указав опцию компилятора -m32), я получаю ошибки.

Вот ошибки, которые я получаю:

  1. не может найти -lstdc ++
  2. не может найти -lgcc_s
  3. пропуск несовместимой библиотеки libgcc.a при поиске по -lgcc
  4. не может найти -lgcc

Очевидно, что когда я собрал компилятор, я сделал что-то не так - может кто-нибудь сказать мне, что я сделал не так и как я могу перекомпилировать компилятор для сборки как 32-битного, так и 64-битного кода.

1 Ответ

0 голосов
/ 07 сентября 2018

По крайней мере, вам нужно сконфигурировать с помощью --with-multilib-list=m32,m64 в командной строке конфигурации. 1 Вам определенно нужно не сконфигурировать с --disable-multilib. Вам также может понадобиться собрать и установить дополнительные версии других библиотек.

В общем, поиск в документации по 'multilib' покажет вам все места, где говорится о построении или использовании gcc с несколькими целевыми ABI.


1 Это значение по умолчанию как минимум для некоторых версий gcc. Вы также можете добавить mx32, если хотите поэкспериментировать с этим.

...