Компиляция под 32-бита из 64-битной системы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Компиляция под 32-бита из 64-битной системы

Сообщение Linus » 26.05.2013 13:54:48

daesher писал(а):Только вопрос: собирается ли ppc386 (с помощью скачанного ppc386)?

ppc386 забрал из debian 6 i386.
daesher писал(а):Возможно - и даже очень вероятно. Если не работают обычные 32-разрядные бинарники, логично, что не будет работать и fpc.

32-битки работают. Для этого ядре все включ.
daesher писал(а):И ещё: идентичны ли сборки ppcx64 и ppc386 (т.е., сделаны ли они с одних исходников)?

FPC собирался из одних исходников.
daesher писал(а):Далее: ppc386, ppcx64 и fpc (или хотя бы ссылки на них) надо разместить в одном каталоге.

ppc386, ppcx64 а так же ссылки размещены в одном месте.

Padre_Mortius писал(а):Может стоит к оригинальной инструкции от разработчиков обратиться?
Там все подробно расписано.

Я как раз все делал по этой инструкции

Padre_Mortius писал(а):P.S. для всяких *buntu для работы с 32-х битными приложениями нужно установить метапакет multiarch

У меня не бубунта, а батя, и все же multiarch есть (понадобился для сборки wine)
Linus
новенький
 
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Re: Компиляция под 32-бита из 64-битной системы

Сообщение Сквозняк » 27.05.2013 05:10:48

Linus писал(а):вот как на 32-х собирать? не ставить же 32 на виртуаль, только для этого. ИМХО извращение.

Что ещё непонятно? Я же тебе привёл рабочий пример сборки 32 битного бинаря из 64 разрядного линукса. Файлы 32 битного лазаруса лежат на диске, но для сборки программ, запускать его НЕ ОБЯЗАТЕЛЬНО. Ты запускаешь его fpc компилятор и им собираешь. Естественно, в системе должны быть установлены i386 glibc и прочие системные 32 разрядные библиотеки, каталог /lib32 должен быть или должна быть такая символическая ссылка на каталог с 32 разрядными библиотеками. И прочие символические ссылки на библиотеки которые компилятор не может найти тоже по мере необходимости нужно добавлять. У меня же сборка лазарусных программ из коммандной строки работает, почему у тебя она не должна работать?
Сквозняк
энтузиаст
 
Сообщения: 1136
Зарегистрирован: 29.06.2006 22:08:32

Re: Компиляция под 32-бита из 64-битной системы

Сообщение Linus » 27.05.2013 13:36:15

Сквозняк писал(а):
Linus писал(а):вот как на 32-х собирать? не ставить же 32 на виртуаль, только для этого. ИМХО извращение.

Что ещё непонятно? Я же тебе привёл рабочий пример сборки 32 битного бинаря из 64 разрядного линукса. Файлы 32 битного лазаруса лежат на диске, но для сборки программ, запускать его НЕ ОБЯЗАТЕЛЬНО. Ты запускаешь его fpc компилятор и им собираешь. Естественно, в системе должны быть установлены i386 glibc и прочие системные 32 разрядные библиотеки, каталог /lib32 должен быть или должна быть такая символическая ссылка на каталог с 32 разрядными библиотеками. И прочие символические ссылки на библиотеки которые компилятор не может найти тоже по мере необходимости нужно добавлять. У меня же сборка лазарусных программ из коммандной строки работает, почему у тебя она не должна работать?



вы как бы чуток припоздали). FPC собрался успешно после выгрузки ppc386 с сайта.
Linus
новенький
 
Сообщения: 47
Зарегистрирован: 11.01.2013 22:01:28

Re: Компиляция под 32-бита из 64-битной системы

Сообщение Сквозняк » 23.08.2025 07:57:41

Всё, теперь такие компиляции глючат и ключ -Pi386 не спасает. Банально 64 битный ld пытается вкомпилить в 32 битный бинарь пачку 64 битных библиотек, это не получается, он пропускает эту операцию, в результате что-то сложнее хелловорда получает рандомную дыру в коде, в которой запрограммированная логика не работает. Теперь для 32 битных линуксовых сборок только виртуалка с 32 битным линуксом и флешкой для передачи данных, если расшарить каталог нельзя. А под 32 битную винду можно как раньше бинарями 32 битного лазаруса собирать, из под вайна, у него свой линковщик применяется.
Сквозняк
энтузиаст
 
Сообщения: 1136
Зарегистрирован: 29.06.2006 22:08:32

Re: Компиляция под 32-бита из 64-битной системы

Сообщение WAYFARER » 23.08.2025 11:39:23

Сквозняк, нечего вроде не поменялось.
Сквозняк писал(а):. Банально 64 битный ld пытается вкомпилить в 32 битный бинарь пачку 64 битных библиотек

Потому что нужно использовать 32-битный линкер.
Включаем i386 и ставим 32-битный тулчейн и ставим 32-битные dev-библиотеки и все будет прекрасно работать. Если нужно могу коротенькую инструкцию вечером сделать.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 544
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru