Что именно означает gcc-multilib в Ubuntu?

11

После долгого зависания со старой Ubuntu (v.12) я обновляюсь до v.16 и меня очень смущают упоминания о "gcc-multilib".

Это на самом деле модель Apple "толстые двоичные файлы" или " универсальные двоичные файлы ", портированная на Linux?

То есть, стали ли нативные библиотеки C в Ubuntu контейнерами, которые упаковывают несколько двоичных файлов для различных архитектур?

Если так, нам больше не нужно специально устанавливать 32-битные библиотеки времени выполнения в системе x64? Пакет по умолчанию для библиотек gcc или g ++ содержит все необходимое для запуска и сборки 32-битных приложений?

ddbug
источник

Ответы:

13

gcc-multilibполезен для кросс-компиляции , то есть компиляции программы для работы на другой архитектуре процессора. Например, вам может понадобиться, gcc-multilibесли вы работаете на 64-битной Ubuntu и хотите скомпилировать программу для запуска на 32-битной Ubuntu (или на ARM и т. Д., Вы поняли идею).

AlexP
источник
1
Таким образом, это не связано с библиотеками времени выполнения? Нам все еще нужно пройти через обручи и установить "libc-i386", "g ++ - i386" и т. Д. На 32-битных библиотеках для запуска 32-битных программ на x64? И "dpkg --add-архитектура i386" связана с мультилиб?
ddbug
Да. Обычные обручи. dpkg --add-architectureпросто говорит, dpkgчто вы действительно хотите установить пакеты для сторонней архитектуры, и он должен перестать жаловаться и запрашивать --force-architecture.
AlexP
Спасибо AlexP. Является ли эта мультибиблиотечная установка новой для Ubuntu 16, или она существовала ранее, скажем, в v.14 или даже 12?
ddbug
12.04 минимум.
AlexP