Отправляет email-рассылки с помощью сервиса Sendsay

FreePascal.ru

  Все выпуски  

FreePascal.ru: Выпуск 4-2006


Информационный Канал Subscribe.Ru

Ведущий о выпуске

Сегодня в выпуске статья "Кросскомпиляция из FreeBSD в Windows." и совет.

Объявление: проводится голосование посвященное этой рассылке Должны ли быть в рассылке полные версии статей? . Прошу проголосовать.

Статьи

Кросскомпиляция из FreeBSD в Windows.

автор Алексей Ю. Уласевич (STAKANOV)

Сейчас мы рассмотрим способ получения исполняемого файл для Windows в операционной системе FreeBSD. Все ниже описанное проделано мной на FreeBSD 5.4. с FPC 2.0.0. В качестве примера будем использовать winhello.pp из демонстрационных программ Free Pascal.

Free Pascal являясь кроссплатформенным и поддерживает кроссплатформенную компиляцию, для этого существует стандартная опция компилятора -TXXXX, где XXXX целевая платформа. Но просто указать ее в параметрах не достаточно – понадобится соответветвующий компоновщик и стандартные библиотеки компилятора для целевой системы (RTL).

Следует учесть, что на момент написания данного текста FPC 2.0.0 все еще не появился в портах, поэтому лично у меня сначала установлены бинарники, а затем все пересобрано из исходников. Все это с префиксом по умолчанию - /usr/local. Соответственно бинарники попали в /usr/local/bin, а юниты и тп в /usr/local/lib.

Собранные для win32 юниты (каталог какой-то_путь\i386-win32) берем из дистрибутива для win32 и помещаем в /usr/local/lib/fpc/2.0.0/units/ рядом с i386-freebsd.

Теперь выполняем следующие магические действия:

cd
mkdir fpc
cd fpc
ln -s /usr/local i386-freebsd
mkdir i386-win32/bin

Теперь идем на ftp://ftp.freepascal.org/fpc/contrib/cross/. Там заходим в каталог freebsd и тянем от туда binutils-2.11.2-cross-freebsd44.2.win32.tar.bz2 Содержимое данного архива кладем в каталог ~/fpc/i386-win32/bin. Важно! Данные бинарники для FreeBSD 4! Поэтому надо либо установить соответвующий дистрибутив (в sysinstall что-то вроде compat_4x) или указать в файле /etc/make.conf опцию COMPAT4X=yes и прересобрать систему.

Но это еще не все. FPC будет пытаться запустить "-as" и "-ld" (сначала мне подумалось, что ему просто какие-то опции надо установить, а оказалось что это именно имена файлов). Поэтому:

cd ~/fpc/i386-win32/bin
ln -s as "-as"
ln -s ld "-ld"

Все. Настройка завершена. Теперь делаем, что-то вроде

fpc -Twin32 winhello.pp

и получаем готовый экзешничек для Windows. Запустить можно например так

wine winhello.exe

Надеюсь ничего не упустил.

PS. Программы написанные для Windows можно портировать в FreeBSD (и тп) прилинковав их к winelib (содержит WinAPI). Известно как это делать для программ на Си. А вот для программ на Паскале нужны юниты Windows.pas и тп. К сожалению стандартные Windows-юниты похоже для этого не подходят. (подробности о Wine на сайте www.winehq.com)

Совет дня

FPC. Для работы с разделяемыми библиотеками на любых платформах используйте модуль dynlibs.


Замечания, пожелания и предложения присылайте на адрес platinum@umail.ru. В любом месте поля 'тема' обязательно укажите слово 'freepascal'.
Рассылки Subscribe.Ru
Дискуссия FreePascal.ru

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.freepascal
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное