Кросс-компиляция из под Linux x64 для Linux x32

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

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

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение Leonius_Bad » 25.08.2015 13:10:32

wavebvg писал(а):[code]ld: warning: ./link.res contains output sections; did you forget -T?

Помните, если у Вас Network Manager или PulseAudio, то наличие 32-битных библиотек может свести это программы с ума. Поэтому лучше все делать так, чтобы система не находила "левые" 32-битные библиотеки (я первый раз тупо копировал с arm и x86 системы и потом долго вычищал). Идеальный вариант, если кросскомпильные библиотеки Вы поставите через менеджер пакетов, но там слишком много заморочек (зато они сами будут обновляться вместе с системой).

Весьма важное примечание, спасибо.

Верно ли я понял, что данные библиотеки можно просто скопировать с x86 системы и сделать на них сим.ссылки? При таком раскладе ничего не полетит?
Какие еще варианты, помимо этого? Хотелось бы чуть подробней про установку через менеджер пакетов - разве при такой установке система не найдет эти самые "левые" пакеты?

В данный момент имею уже аналогичный 32 битный линукс на виртуалке=)) Тут же разобраться просто для расширения кругозора хочется.
Leonius_Bad
новенький
 
Сообщения: 51
Зарегистрирован: 29.11.2012 19:18:07

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение wavebvg » 25.08.2015 13:20:44

Leonius_Bad писал(а):Верно ли я понял, что данные библиотеки можно просто скопировать с x86 системы и сделать на них сим.ссылки? При таком раскладе ничего не полетит?
Какие еще варианты, помимо этого? Хотелось бы чуть подробней про установку через менеджер пакетов - разве при такой установке система не найдет эти самые "левые" пакеты?

В данный момент имею уже аналогичный 32 битный линукс на виртуалке=)) Тут же разобраться просто для расширения кругозора хочется.

Можете, но системные файлы управляются менеджером пакетов, поэтому копировать и создавать ссылки с системых каталогах - это плохой тон.
А вот разместить каталог с библиотеками отдельно и прописать пути в fpc.cfg - это куда надежнее и решает часть проблем с миграцией на новую систему (новый каталог => новые пути в конфиге => пересборка кросскомпилятора => профит).
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение MysticCoder » 27.08.2015 16:03:55

Leonius_Bad писал(а):
wavebvg писал(а):
Leonius_Bad писал(а):http://wiki.freepascal.org/Cross_compil ... Linux_i386
Или я совсем не там смотрю?

Да, этого вполне достаточно, чтобы все прекрасно собралось.


Возможно, мы друг друга недопоняли.
Я именно по такой инструкции всё и делал (она же аналогична инструкции из шапки), в итоге получая вышеуказанную ошибку.

Прописал в /etc/fpc.cfg аналогичные пути для своих библиотек:
Код: Выделить всё
# path to the gcclib
#ifdef cpui386
-Fl/usr/lib/gcc/i686-linux-gnu/4.8
-Fl/usr/lib/i386-linux-gnu
-Fl/lib/i386-linux-gnu
#endif
#ifdef cpux86_64
-Fl/usr/lib/gcc/x86_64-linux-gnu/4.8
-Fl/usr/lib/x86_64-linux-gnu
-Fl/lib/x86_64-linux-gnu
#endif

Никакого эффекта. Как выдавало ту злосчастную ошибку, так и выдает. Что еще-то не так?:( Или не там прописал? Не те прописал?

Тайфун не хочу, хочется последний лазарь всё же, да и разобраться с этим уже некое дело принципа=)


У меня в ubuntu либы компилировались в /usr/local/...
я просто копировал строки вида -Fl/usr/lib/gcc/x86_64-linux-gnu/4.8 ниже и приводил их к виду -Fl/usr/local/lib/gcc/x86_64-linux-gnu/4.8, только пути стандартные с $FPCVERSION $CPUTARGET, после этого либы норм находились
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение Cheb » 14.09.2015 17:23:54

правда я под винду не выполняю кросскомпиляции, пока причин не было

Это-то как раз как два пальца об асфальт. Виндовый фпц ставится под вайном, и потом собираешь, вызывая wine <путь>ppc386. Я первые годы так свой игровой движок строил, из под линукса.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение Leonius_Bad » 24.09.2015 11:02:10

Я таки проделал все шаги из вики.
Установил пакет libv6:i386 и библиотеки упали в /usr/lib32. Ничего в fpc.cfg не прописывал, и так собралось.

Вопрос: как теперь заставить Lazarus таки уже собирать под x32? Ибо, я либо сделал что-то не то, и нужно было таки чего прописать, либо же что-то не доделал, но при выборе целевой платформы у проекта - лазарь всё равно говорит, что fpc не поддерживает i386...=((

В вики последним идет "That's it. Edit your /etc/fpc.cfg file if needed. ", что именно там поправить?:)

Добавлено спустя 36 минут 7 секунд:
Скопировал получившиеся модули и компилятор(ppcross386) из /usr/local/lib/fpc/2.6.4/ в /usr/lib/fpc/2.6.4/ (там, где были модули для х64).
fpc.cfg выглядит корректным, все пути же идентичны (с учетом переменной $FPCTARGET).

Не помогло=\
Leonius_Bad
новенький
 
Сообщения: 51
Зарегистрирован: 29.11.2012 19:18:07

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение Лекс Айрин » 24.09.2015 13:27:56

Leonius_Bad, а в настройках проекта не пробовали платформу выставить на нужную Вам?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Кросс-компиляция из под Linux x64 для Linux x32

Сообщение Leonius_Bad » 26.09.2015 18:49:35

Лекс Айрин писал(а):Leonius_Bad, а в настройках проекта не пробовали платформу выставить на нужную Вам?

пробовал. Сразу после применения настроек пишет "/usr/bin/fpc не поддерживает i386" ...=(
Leonius_Bad
новенький
 
Сообщения: 51
Зарегистрирован: 29.11.2012 19:18:07

Пред.

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

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

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

Рейтинг@Mail.ru
cron