Кросс из Линукса в Вин

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

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

Сообщение Attid » 05.02.2007 23:06:23

про компиляцию формачек в лазаре нет не слова :(
а хотелось бы :) а то моя тема повисла без ответов
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexander » 06.02.2007 14:22:28

Всё, запустил.

РАБОТАЕТ !

Внасчале сделал make OS_TARGET=win32 CPU_TARGET=i386 build в
fpcsrc (которая в поддиректории fpcbuild_2.0.4_exp !). Всё собралось.
Затем последовательно зашёл в rtl, fcl, packages, fv и сделал ТАМ
make OS_TARGET=win32 CPU_TARGET=i386 install

Все библиотеки легли куда нужно. Таргет win32 заработал,
но при линковке отвалился с руганью на отсутствие as.

Почитал ман ФПК и решил вопрос. Оказывается нужно дать префикс
для кроссового binutils (as, ld ...).
Тот, который просил ФПК при кроссе и который я соответственно
задал в симлинках.

В итоге кросс: fpc -Twin32 -XPi386-win32- testcross.pas

Затем захотелось большего и я решил собрать тестовый проект MSE.
Получилось !

fpc -Twin32 -XPi386-win32- -Fu/root/MyDownloads/msei/msegui/lib/common/kernel/i386-win32/ testprog.pas

Спасибо всем откликнувшимся !

Кажется мы освоили кросс в обе стороны.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение shade » 07.02.2007 18:25:24

Что-то не нашел скомпилированной версии binutils для кросса Lin2Win
Может кто-нибудь выложит (ld, as)?..
Я собрал бы из исходников, но в моем дистрибутиве нет gcc :(, обновлюсь не скоро...

Вот обновленная статья, оценивайте:
http://zolotov.h14.ru/fpc_cross.pdf
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 08.02.2007 01:43:48

Выложил у себя на сайте, когда заберёшь, отпишись, я его удалю.

Не знаю всё ли там, что нужно, но это то что я увидел нового после
binutils make install.

Лежит эта директория прямо в /usr/ то есть
/usr/i386-mingw32/ симлинки сделал просто в /bin/
(да простят меня юникс- гуру, спешил я)
такие: i386-win32-ar, i386-win32-as...
Намного правильней сделать их в /usr/bin/

http://www.aralni.narod.ru/i386-mingw32.tar.bz2

Раскрой его в директории /usr/ командой
Код: Выделить всё
tar -xvjf i386-mingw32.tar.bz2


shade писал(а):нет gcc


Это неправильный дистрибутив. Линукс без gcc - импатент.
При всей моей нелюбви к языку Си.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение shade » 08.02.2007 10:27:50

Alexander писал(а):Это неправильный дистрибутив. Линукс без gcc - импатент.
При всей моей нелюбви к языку Си.

Согласен, просто у меня всего один из трех дисков, gcc на втором, а второй диск оказался бракованный. Сейчас поставил ubuntu, а на нем откопал gcc, не понятно из каких соображений он не ставиться по умолчанию. Пытался скомпилировать, но не понял какую цель нужно указать, пробовал win32, i386-win32, mingw, надо было еще попробовать mingw32, сейчас перезагружусь (lin в интернет коннектиться не хочет :() проверю.

За ссылку спасибо, скачал, можно удалять...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 08.02.2007 10:50:38

Ваш binutils работает, покрайней мере hello world кросс-компилировался :D
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 08.02.2007 16:39:22

Если я не ошибаюсь, то все на много круче - FPC 2.0.4 и FPC 2.1.1 которые я тестировал имеют встроенный компоновщик :!: и никакого binutils не нужно. А в случае Win2Lin binutils нужен :(
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 08.02.2007 21:44:36

Не, у меня не заработал без бинутилс.
А жаль, ведь действительно есть такая опция компилятора.

Попробуй переименовать папку. По идее должен заткнуться. И просить as.

А вот то что заработало - хорошо,
значит достаточно содержимого этой папки. ~1.5mb

shade писал(а):надо было еще попробовать mingw32


Точно надо было. А потом (в случае успешной компиляции)
просто make install.

shade писал(а):Вот обновленная статья, оценивайте:


Шикарно !
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Sergei I. Gorelkin » 08.02.2007 22:22:57

FPC 2.0.4, насколько мне известно, встроенного компоновщика не имеет. А 2.1.1 имеет, и к тому же обходится без ассемблера (ассемблерные файлы в исходниках RTL оставлены только для того, чтобы можно было собрать компилятор 2.1.1 с помощью 2.0.4)
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение shade » 08.02.2007 22:53:35

Да, что-то я попутал, у меня нет исходников 2.0.4 :oops:, а 2.1.1 действительно обходиться и без ld и без as (но только при компиляции под win и некторые другие системы).
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение shade » 08.02.2007 23:23:22

значит достаточно содержимого этой папки. ~1.5mb
Я думаю, что достаточно только as, ld и strip.
на счет strip сомнваюсь, т.к. в компоновщике и так есть опция котороя длает все нужное..
А так как видите внешние и не использовались, только внутренний компоновщик.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 09.02.2007 00:18:02

Я правильно понял что для 2.1.1 этот бинутилс вообще не нужен ?

Это не может не радовать. Компилятор растёт и развивается.

Кстати strip нормально работает обычный, не кроссовый,
с РЕ файлами справляется. UPX тоже.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Alexander » 09.02.2007 03:21:05

Не стал пока удалять бинутилс (может кому пригодятся).
Переложил сюда:

http://www.aralni.narod.ru/prog/mse/i38 ... 32.tar.bz2
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение shade » 09.02.2007 09:58:10

Alexander писал(а):Я правильно понял что для 2.1.1 этот бинутилс вообще не нужен ?

Все зависит от платформы под которую будешь компилировать. Например, для freebsd, linux binutils нужен, для win32 не нужен.

Alexander писал(а):Кстати strip нормально работает обычный, не кроссовый,
с РЕ файлами справляется. UPX тоже.

Относительно strip вы не правы, просто при кросс-компиляции он (strip) не вызывается (вместо него используется опция FPC -Xs, которая переадресуется компоновщику который сам знает как делать strip).
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 10.02.2007 00:44:19

Не, я стрип прямо из консоли запускал. Работает и с РЕ и с Эльфом.
Бинутилс значит оставлю надолго.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Пред.След.

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

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

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

Рейтинг@Mail.ru