Автор Тема: скомпилировать 32битную программу на 64 битном альте  (Прочитано 4014 раз)

Оффлайн ut1

  • Участник
  • *
  • Сообщений: 163
  • Simply Linux P7 64bit
cat hellow.c
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}

 gcc -m32 hellow.c

/usr/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-alt-linux/4.5.3/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-alt-linux/4.5.3/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

Как его собрать?

Используется репозиторий  x86_64-i586

Оффлайн Kemper

  • Участник
  • *
  • Сообщений: 572
  • Simply Linux
Используется репозиторий  x86_64-i586
А вы ни чего не напутали в написании репозитория?

Попробуйте воспользоваться репозиторием x86_32 и поставить от туда gcc 32 битный и работающий на 64 битной системе (не уверен, что он там есть кстати).
А вообще вам сюда http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%BE%D1%81%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80. Пересборка gcc через bunaltis, ещё тот квест, так что почитайте как это делать, думаю вопрос насущный, по крайней мере у паскалистов это обычная проблема.
« Последнее редактирование: 14.05.2012 22:28:51 от Kemper »
Alt Linux - Поддержим Российского производителя!

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
Как его собрать?
Установите необходимые 32-битные devel-пакеты из репозитория x86_64-i586.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн ut1

  • Участник
  • *
  • Сообщений: 163
  • Simply Linux P7 64bit
А вы ни чего не напутали в написании репозитория?
нет.
так как в том что вы указали нет библиотек для nvidia, а смешивать 2 репозитория нехорошо
Установите необходимые 32-битные devel-пакеты из репозитория x86_64-i586.
сделано
http://pastebin.com/gVsY7Had
но почему-то не помогает.
« Последнее редактирование: 16.05.2012 20:54:41 от ut1 »

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
но почему-то не помогает.
libgcc_s.so ищите
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
А вы ни чего не напутали в написании репозитория?
http://www.altlinux.org/Biarch#.C2.ABarepo_2.0.C2.BB

Оффлайн ut1

  • Участник
  • *
  • Сообщений: 163
  • Simply Linux P7 64bit
но почему-то не помогает.
libgcc_s.so ищите
/lib/libgcc_s.so.1
/usr/lib/gcc/i586-alt-linux/4.5.3/libgcc_s.so
/usr/lib/gcc/i586-alt-linux/4.5.3/libgcc_eh.a
/usr/lib/gcc/i586-alt-linux/4.5.3/libgcc.a

нашел.
что дальше?

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
что дальше?
Ничего не изменилось?
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн ut1

  • Участник
  • *
  • Сообщений: 163
  • Simply Linux P7 64bit
нет.
это вывод команды find


вот если сделать так
 gcc -L /usr/lib/gcc/i586-alt-linux/4.5.3/ -m32 hellow.c
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib64/gcc/x86_64-alt-linux/4.5.3/crtbegin.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib64/gcc/x86_64-alt-linux/4.5.3/crtend.o' is incompatible with i386 output
collect2: выполнение ld завершилось с кодом возврата 1

возможно надо как-то указать чтоб брал и эти файлы в
/usr/lib/gcc/i586-alt-linux/4.5.3/
но как?
« Последнее редактирование: 20.05.2012 12:24:48 от ut1 »

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
Баг на gcc повесьте. Должен подхватывать сам нужную при наличии.
Если совпадают версии x86_64 и i586 компонентов.
« Последнее редактирование: 20.05.2012 12:29:49 от zerg »
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.