Вчера я установил Ubuntu 14.04 (Trusty Tahr). Вроде все нормально. Но когда я попытался скомпилировать код C, я обнаружил следующую ошибку. Ошибка, похоже, связана с тем, что ОС не поддерживает 32-битную архитектуру. Вывод ошибки следующий:
/usr/bin/ld: i386 architecture of input file `./libsc.a(ftl_msg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_debug.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_str.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_cfg_common.o)' is incompatible with i386:x86-64 output
Раньше apt-get install ia32-libs
я использовал Ubuntu 12.04 (Precise Pangolin). Но я знаю, что Ubuntu удалила ia32-libs с Ubuntu 13.10 (Saucy Salamander). Как я могу исправить эту проблему?
gcc -m32 helloworld.c
. Удачи.Ответы:
Вы можете попробовать это, чтобы установить 32-битную библиотеку (не все в ia32-libs):
sudo dpkg --add-architecture i386
может потребоваться (если вы никогда не запускали это).Или, если вы хотите вместо этого установить всю ia32-lib, попробуйте следующий порядок:
PS: Таким способом можно установить
ia32-libs
. Однако вместо этого мы добавляем источник 13.04, так что может возникнуть какая-то неизвестная проблема. После установкиia32-libs
рекомендую убратьia32-libs-raring.list
в/etc/apt/sources.list.d
и сделатьsudo apt-get update
.Если вы хотите исправить зависимость Android SDK, вы можете попробовать следующее:
sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
источник
apt-get update
. Поэтому я изменил исходный код пакета наdeb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multi verse
. Теперь это работает.Установите несколько библиотек gcc.
источник
libstdc++6-4.7-dev:i386
требуется для извлечения виртуальных машин Internet Explorer с www.modern.iesudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
Лучший ответ, который я когда-либо видел: как запускать 32-битные приложения на 64-битной Ubuntu?
источник
Получил наконец! Вот мой способ, и я надеюсь, что он вам поможет :)
Я не знаю, почему мне нужно их установить, но на моем компьютере это работает. Когда вы закончите установку этих пакетов, самое время попробовать. О да, мне нужно тебе сказать. На этот раз , когда вы хотите , чтобы скомпилировать код, вы должны добавить
-m32
послеgcc
, например:gcc -m32 -o hello helloworld.c
. Простоmake clean
иmake
снова. Удачи, друзья.PS: моя среда: Ubuntu 14.04 64-бит (Trusty Tahr) и GCC версии 4.8.4. Я написал решение в своем блоге, но оно на китайском :-) - Как компасить 32-битную программу под ubuntu14.04 .
источник
Эти альтернативные библиотеки работали для меня:
источник
У меня была та же проблема, что и выше, и Eclipse предложил установить:
Когда я попытался установить ia32-libs, Ubuntu предложила установить еще три пакета:
С Android Studio и intellij мне также пришлось установить 32-битную версию libstdc ++ 6:
источник
lib32z1
бесценноДля меня я должен бежать
перед запуском ответа Майка Танга. В противном случае я не смогу установить ia32-libs.
источник
Просто установите 32-битную версию программы вместо 64-битной.
Это намного безопаснее, чем установка пакетов, не предназначенных для данного дистрибутива.
Я получил это предложение из инструкций по установке Google Планета Земля для Ubuntu 14.04 . Google Планета Земля раньше использовалась
ia32-libs
под 64-разрядной версией Ubuntu 12.04.Цитата webupd8.org :
Проблема с некоторыми программами (например, Google Earth) заключается в том, что 32-разрядный пакет не поддерживает многоархивность. Следовательно, некоторые 32-битные зависимости необходимо установить вручную, чтобы 32-битная версия программы работала в 64-битной Ubuntu.
источник
Если вы находитесь в Китае, вы можете изменить «raring» на «точное» (для Ubuntu 13.04 (Raring Ringtail) и Ubuntu 12.04 LTS (Precise Pangolin) , соответственно). Я установил Beyond Compare на Ubuntu 14.04 (Trusty Tahr).
источник
Проблема в том, что во многих случаях пакеты уже являются многоархивными, поэтому пакет i386 недоступен, но другие пакеты по-прежнему зависят только от пакета i386. Это проблема в репозитории, и менеджеры репозиториев должны ее исправить
источник
Решение - добавить соответствующий путь пакета Debian в ваш репозиторий. Для этого введите следующие команды:
Первая строка записывает в конец
sources.list
файла пакетный путь. У меня это работает. Я хочу, чтобы это вам помогло.источник