Кроскомпиляция Win32 FreeBSD

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

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

Кроскомпиляция Win32 FreeBSD

Сообщение AbakAngelSoft » 18.06.2009 00:26:57

Захожу с папку fpc\2.2.2\source\rtl
набираю: make OS_TARGET=freebsd
отвечает:
Код: Выделить всё
make.exe[1]: Entering directory `fpc/2.2.2/source/rtl/freebsd'
fpc/2.2.2/bin/i386-win32/gmkdir.exe -p ../../rtl/units/i386-freebsd
i386-freebsd-as -o ../../rtl/units/i386-freebsd/prt0.o i386/prt0.as
process_begin: CreateProcess((null), i386-freebsd-as -o ../../rtl/units/i386-fre
ebsd/prt0.o i386/prt0.as, ...) failed.
make (e=2): ═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы.
make.exe[1]: *** [prt0.o] Error 2
make.exe[1]: Leaving directory `fpc/2.2.2/source/rtl/freebsd'
fpc\2.2.2\bin\i386-win32\make.exe: *** [freebsd_all] Error 2


где найти i386-freebsd-as?
на ftp://ftp.freepascal.org/fpc/contrib/cross/ соответствующего binutils нету. может быть можно переименовать другой?

Добавлено спустя 57 минут 26 секунд:
binutils откопал ftp://ftp.freepascal.org/fpc/contrib/cross/mingw/
rtl и пакеты скомпилировал, установил. lcl не хочет говорит:
fpc/2.2.2/bin/i386-win32/rm.exe -f units/i386-freebsd/alllclunits.ppu

fpc/2.2.2/bin/i386-win32/gmkdir.exe -p units/i386-freebsd
fpc/2.2.2/bin/i386-win32/ppc386.exe -Tfreebsd -XPi386-freebsd- -Xr -g
l -Fu. -Funonwin32 -Fuforms -Fuwidgetset -Fiinclude -FE. -FUunits/i386-freebsd -
di386 alllclunits.pp
Free Pascal Compiler version 2.2.2 [2008/10/05] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: FreeBSD/ELF for i386
Compiling alllclunits.pp
Compiling lclversion.pas
Compiling lclstrconsts.pas
Writing Resource String Table file: lclstrconsts.rst
Compiling fpcadds.pas
Compiling lazlinkedlist.pas
Compiling dynhasharray.pp
Compiling lclproc.pas
Compiling avglvltree.pas
Compiling fileutil.pas
Compiling masks.pas
Fatal: Can't find unit Contnrs used by Masks
Fatal: Compilation aborted
fpc\2.2.2\bin\i386-win32\make.exe: *** [alllclunits.ppu] Error 1

Добавлено спустя 1 час 28 минут 52 секунды:
разобрался что make кладет файлы не туда куда надо исправил указанием параметра INSTALL_BASEDIR=fpc\2.2.2\
скомпилировал и установил все что только можно. Новая напасть:
fpc\2.2.2\bin\i386-win32\i386-freebsd-ld.exe: cannot find -liconv
??? где найти iconv и с какой целью оно нужно при компиляции пустого проекта?

ps. интересно я один не сплю?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Attid » 18.06.2009 09:38:57

с FreeBSD тут никого нет или они обэтом молчат. так что прийдется все искать самому.

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

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Mr.Smart » 18.06.2009 10:17:28

AbakAngelSoft писал(а):fpc\2.2.2\bin\i386-win32\i386-freebsd-ld.exe: cannot find -liconv
??? где найти iconv и с какой целью оно нужно при компиляции пустого проекта?

тута есть
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кроскомпиляция Win32 FreeBSD

Сообщение AbakAngelSoft » 18.06.2009 14:03:29

Mr.Smart:
Спасибо за ссылку! Но какой из них качать? bin, dev, dll или src? Мне исключительно для целей кроскомпиляции.

И все таки не ясно, зачем в пустом проекте эта библиотека. Насколько я понимаю, она нужна для работы с кодировками, но в проекте еще ничего нет, и соответственно никакой работы с кодировками не производится!

Что то в этом мире неправильно!
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Кроскомпиляция Win32 FreeBSD

Сообщение AbakAngelSoft » 20.06.2009 22:05:13

скачал все:
библиотеку скинул в fpc\2.2.2\bin\i386-win32 - не помогает.
исходники на си - их не подпихнуть.
подскажите что делать дальше?
мне бы просто пустой проект скомпилировать.

Добавлено спустя 49 минут 16 секунд:
неужели никто не отзовется?
Я разобрал исходники iconv нашел заголовочный файл похожий на то что требует компилятор iconv.h.
Перевел его в паскаль h2pas iconv.h
Получил iconv.pp. пытаюсь его скомпилировать отдельно под win32 напрямую и кроскомпиляцией получаю одинаково:
Compiling iconv.pp
iconv.pp(14,26) Error: Forward type not resolved "Piconv_allocation_t"
iconv.pp(16,15) Error: Forward type not resolved "Pwchar_t"
iconv.pp(68,26) Error: Identifier not found "libiconv_t"
iconv.pp(68,26) Error: Illegal expression
iconv.pp(75,2) Fatal: Can't open include file "<stddef.h>"
Fatal: Compilation aborted

Файла с именем stddef нигде нет.

Добавлено спустя 27 минут 33 секунды:
Улыбнулся:
в fpc уже есть корректный заголовок iconvh.inc почему же он его не прикручивает?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Mr.Smart » 21.06.2009 00:42:21

немучийся в одной ветке был проект так называемый CodeTyphon я в нём видел скрип по компиляции кросса для freebsd! вот прада сам непробовал!!!
viewtopic.php?f=5&t=4502
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кроскомпиляция Win32 FreeBSD

Сообщение AbakAngelSoft » 21.06.2009 01:11:09

Спасибо!
Попробую - расскажу.
Пока что получилось скомпилировать удалив все ссылки на модули использующие iconv.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Кроскомпиляция Win32 FreeBSD

Сообщение AbakAngelSoft » 22.06.2009 18:29:24

CodeTyphon это хорошо, но как все же избавится от проблемы с iconv с обычном fpc?
Хотелось бы не готовое решение, а научится работать напильником самостоятельно.
Неужели никто не сталкивался? Насколько я понимаю fpc кросплатформенная среда и кросскомпиляция ежедневное явление, а freeBSD популярное решение для виртуального хостинга.
Буду благодарен за любые пинки в нужном направлении. Пока продолжаю копать самостоятельно.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Mr.Smart » 22.06.2009 20:04:17

AbakAngelSoft писал(а):CodeTyphon это хорошо, но как все же избавится от проблемы с iconv с обычном fpc?
Хотелось бы не готовое решение, а научится работать напильником самостоятельно.
Неужели никто не сталкивался? Насколько я понимаю fpc кросплатформенная среда и кросскомпиляция ежедневное явление, а freeBSD популярное решение для виртуального хостинга.
Буду благодарен за любые пинки в нужном направлении. Пока продолжаю копать самостоятельно.

Это всеголишь надстройка. Компиляция проводится опять же средствами fpc. Посмотрите например скрипт CodeTyphon\ScriptsWin\Crossbuild\x_FPC_Win32_Build_Cross_i386_freebsd.bat и попробуйте сами.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кроскомпиляция Win32 FreeBSD

Сообщение mirk » 13.06.2011 15:41:12

Пробую компилировать для FreeBSD из Win32.
Переписал binutils-2.15-win32-i386-freebsd.zip и сделал make OS_TARGET=freebsd - процесс прошел успешно.
Далее делаю fpc –Tfreebsd hello.pas и получаю
Код: Выделить всё
Warning: Only one source file supported, changing source file to compile from "ЦTfreebsd" into "hello.pas"
Free Pascal Compiler version 2.4.2 [2011/03/08] for i386
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Win32 for i386
Compiling hello.pas
Fatal: Can't open file "hello.pas"
Fatal: Compilation aborted
Error: c:\lazarus\fpc\2.4.2\bin\i386-win32\ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)

Пробовал прописывать полные пути и переименовывать i386-freebsd-ar.exe в ar.exe (и т.д.).
В чем может быть проблема?
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Mr.Smart » 13.06.2011 15:46:35

проверьте пути в fpc.cfg
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Ism » 13.06.2011 15:49:38

Насколько я знаю fpc не любит русские символы и пробелы в пути.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Кроскомпиляция Win32 FreeBSD

Сообщение mirk » 13.06.2011 18:09:22

Ошибка оказалось глупой - опечатка в имени файла.
Но компиляция не проходит :(
C:\lazarus_test>c:\lazarus\fpc\2.4.2\bin\i386-win32\fpc -Tfreebsd -Fuc:\lazarus\fpc\source\rtl\units\i386-freebsd -FDc:\lazarus\fpc\2.4.2\bin\i386-freebsd hello
.pas
Warning: Only one source file supported, changing source file to compile from "ЦFuc:\lazarus\fpc\source\rtl\units\i386-freebsd" into "hello.pas"
Free Pascal Compiler version 2.4.2 [2011/03/08] for i386
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: FreeBSD/ELF for i386
Compiling hello.pas
Fatal: Can't find unit system used by Hello
Fatal: Compilation aborted
Error: c:\lazarus\fpc\2.4.2\bin\i386-win32\ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Re: Кроскомпиляция Win32 FreeBSD

Сообщение Mr.Smart » 13.06.2011 18:11:56

А кто будет собирать RTL для freebsd?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кроскомпиляция Win32 FreeBSD

Сообщение mirk » 13.06.2011 19:21:34

А кто будет собирать RTL для freebsd?

Я писал выше про make OS_TARGET=freebsd (имел ввиду сборку RTL).
RTL собран и в каталоге c:\lazarus\fpc\2.4.2\source\rtl\units\i386-freebsd\ куча файлов.
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

След.

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

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

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

Рейтинг@Mail.ru