Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Сборка 32-битного приложения из 64-битной ОС  (Прочитано 5650 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kiv

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Есть 32-битный объектный файл Linux приложения. Надо собрать из него исполняемый файл. Разумеется, 32-битный. Однако gcc ругается, что неверная архитектура и ничего кроме 64-битных объектных файлов получать на входе не хочет. Собственно как заставить 64-битный gcc линковать 32-битные файлы. Ну и второй вопрос: будут ли 32-битные исполняемые файлы запускаться под 64-битной Ubuntu? А после установки дополнительных пакетов (если на предыдущий вопрос ответ был "Нет")? Просьба не советовать скомпилировать в 64-бита! Мне нужно именно 32.

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
gcc -m32 или g++ -m32
на 64-битной платформе нет пробем с 32-битами. Если, конечно, поставлены нужные пакеты.

Пользователь решил продолжить мысль 20 Июля 2010, 22:45:53:
Главное: ia32-libs
« Последнее редактирование: 20 Июля 2010, 22:45:53 от Sova777 »
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн kiv

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
ia32-libs поставился вроде бы вместе с wine. компиляция не прошла. g++ написал:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
а gcc написал:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
collect2: ld returned 1 exit status

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
lib32stdc++ у тебя есть?
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн kiv

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
в менеджере пакетов такой пакет стоит, а dbg нет.

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Проверил на одной из тестовых машин. Такая команда должна помочь:
sudo apt-get install g++-multilib gcc-multilib gfortran-multilib
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

 

Страница сгенерирована за 0.046 секунд. Запросов: 25.