компилировать под другую ось

Вопросы программирования и использования среды Lazarus.

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

компилировать под другую ось

Сообщение Attid » 12.12.2006 18:44:20

в общем решил я попробывать откомпилировать приложение из под win32 для linux

для начало проверил компилирование в ком строке под вынь32
Код: Выделить всё
c:\lazarus\fpc\2.0.4\bin\i386-win32\ppc386.exe  -S2cgi -OG1 -TWin32 -gl -WG -vewnhi -l -Fu..\..\lazarus\components\UIB21\source\lib\ -Fu..\..\lazarus\lcl\units\i386-win32\  -Fu..\..\lazarus\lcl\units\i386-win32\win32\ -Fu..\..\lazarus\packager\units\i386-win32\ -Fu. -oacreport.exe -dLCL -dLCLwin32 acreport.lpr


все прекрасно значит соответственно надо получить
..\..\lazarus\lcl\units\i386-linux
..\..\lazarus\packager\units\i386-win32\ и т.д. как это сделать не понял,
скопировал из линукса

начал ругаться на не хватку модулей fpc скопировал все что нашел под линуксом в венду c:\lazarus\fpc\2.0.4\units\linux но счастья не настало сейчас компилировать пытаюсь строкой

Код: Выделить всё
C:\lazarus\fpc\2.0.4\bin\i386-win32\ppc386.exe -S2cgi -OG1 -TLinux -gl -vewnhi -l -Fuc:\lazarus\components\UIB21\source\lib\ -Fuc:\lazarus\lcl\units\i386-linux\ -Fuc:\lazarus\lcl\units\i386-linux\gtk\ -Fuc:\lazarus\packager\units\i386-linux\ -Fuc:\lazarus\fpc\2.0.4\units\linux\ -Fuc:\lazarus\lcl\units\i386-linux -Fu. -oacreport -dLCL -dLCLgtk acreport.lpr

ругается на отсутствие модуля forms хотя в :\lazarus\lcl\units\i386-linux он присутствует

в общем как правильно получить каталоги с содержимым c:\lazarus\fpc\2.0.4\units\i386-linux \lazarus\lcl\units\i386-linux
и как правильно потом скомпилировать приложение под линь :?:
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение divinusproject » 15.12.2006 15:45:59

в каталоге с исходниками fpc:
make OS_TARGET=linux CPU_TARGET=i386 build
потом
make OS_TARGET=linux CPU_TARGET=i386 install

для кросс-компиляции нужны будут binutils, брать здесь:
ftp://ftp.freepascal.org/fpc/contrib/cross/
divinusproject
новенький
 
Сообщения: 49
Зарегистрирован: 16.05.2006 08:25:02
Откуда: Барнаул

Сообщение Attid » 15.12.2006 18:05:16

Код: Выделить всё
для кросс-компиляции нужны будут binutils, брать здесь:
ftp://ftp.freepascal.org/fpc/contrib/cross/


ээ а что-то под i386 там не видно или
File: binutils-2.15-win32-powerpc-linux.zip
подойдет ? и что с ними делать ??
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение divinusproject » 15.12.2006 22:16:49

ftp://ftp.freepascal.org/fpc/contrib/cr ... ls2005.zip

из архива из папки i386-linux скопировать файлы в ...\pp\bin\i386-win32\
их же скопировать в папку ...\pp\bin\i386-linux\, переименовав из i386-linux-ar.exe в ar.exe и т.д.

собрать fpc с помощью make (см. выше)

после этого можно компилировать:
fpc -Tlinux test.pas

Если нужно компилировать в лазаре, то понадобятся библиотеки .so из линукса:
libpthread.so.0
libdl.so
libc.so
ld-linux.so.2
crtbegin.o
crtbeginS.o
crtbeginT.o
crtend.o
crtendS.o
crtn.o
crti.o
libgcc.a
libX11.so
libXi.so
libglib-1.2.so
libgmodule-1.2.so.0
libgdk_pixbuf.so
libgdk-1.2.so
libgtk-1.2.so
libXext.so
libm.so
libdl.so.2
libgmodule-1.2.so
divinusproject
новенький
 
Сообщения: 49
Зарегистрирован: 16.05.2006 08:25:02
Откуда: Барнаул

Сообщение Attid » 12.01.2007 19:36:31

ничего не получается остановился на
собрать fpc с помощью make (см. выше)


делаю так:
c:\lazarus\fpc\2.0.4\fpc\compiler>make OS_TARGET=linux CPU_TARGET=i386 build

получаю
MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp.
Error makefile 13: Command syntax error
Error makefile 16: Command syntax error
Error makefile 17: Command syntax error
Error makefile 20: Command syntax error
и так до
*** 1613 errors during make ***
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 12.01.2007 20:17:25

MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise Corp. - ни на какие мысли не наводит? :wink:
Для сборки FPC нужен GNU make.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Attid » 13.01.2007 16:10:11

о точно а слона я и не приметил :)

только получается мне прийдется тянуть 30 метров исходников fpc что не радует, а могу я скомпилиный fpc взять из под линуха ?


скачать скачал, теперь другая беда :
Код: Выделить всё
c:/lazarus/FPC/2.0.4/bin/i386-win32/rm.exe -f *.s *_ppas.sh
make.exe[6]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl/linux'
make.exe[5]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl'
c:/lazarus/FPC/2.0.4/bin/i386-win32/make.exe -C C:/lazarus/FPC/2.0.4/fpcsrc/rtl
'OPT=' all
make.exe[5]: Entering directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl'
c:/lazarus/FPC/2.0.4/bin/i386-win32/make.exe -C linux all
make.exe[6]: Entering directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl/linux'
i386-linux-as --32 -o C:/lazarus/FPC/2.0.4/fpcsrc/rtl/units/i386-linux/prt0.o i3
86/prt0.as
process_begin: CreateProcess((null), i386-linux-as --32 -o C:/lazarus/FPC/2.0.4/
fpcsrc/rtl/units/i386-linux/prt0.o i386/prt0.as, ...) failed.
make (e=2): ═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы.
make.exe[6]: *** [prt0.o] Error 2
make.exe[6]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl/linux'
make.exe[5]: *** [linux_all] Error 2
make.exe[5]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/rtl'
make.exe[4]: *** [rtl] Error 2
make.exe[4]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/compiler'
make.exe[3]: *** [cycle] Error 2
make.exe[3]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc/compiler'
make.exe[2]: *** [compiler_cycle] Error 2
make.exe[2]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc'
make.exe[1]: *** [build-stamp.i386-linux] Error 2
make.exe[1]: Leaving directory `C:/lazarus/FPC/2.0.4/fpcsrc'
c:\lazarus\FPC\2.0.4\bin\i386-win32\make.exe: *** [fpcsrc/build-stamp.i386-linux
] Error 2"
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Attid » 13.01.2007 17:31:27

ой я какую-то глупость написал :) стирать не буду , пусть все знают :)

попробывал просто пересобрать компилятор, все прошло удачно, и build и install вот только куда прошло я не понял :/

пока писал догодался посмотреть в c:\pp , хотя расчитывал что файлы изменятся в c:\lazarus\FPC\2.0.4\bin , что-то я наверно до сих пор не понимаю, но готов скачать все скомпилированое у добрых людей через рапиду :) или сильнее чтоли ткните меня где я не прав :/


***************************

приятно пообщаться с умым человеком :)
пока тут в одиночку писал все получилось
c:\lazarus\FPC\2.0.4>c:\lazarus\FPC\2.0.4\bin\i386-win32\make.exe OS_TARGET=linux install
ошибка была с ключом CPU_TARGET=i386

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

Сообщение first-leon » 13.01.2007 17:48:17

Как все запутано. А нельзя ли сделать такую версию FPC чтобы там сразу под все платформы библиотеки были, и оставалось толко указать платформы и компилировать?
first-leon
новенький
 
Сообщения: 68
Зарегистрирован: 20.04.2006 18:46:31

Сообщение first-leon » 13.01.2007 18:29:40

Добился все таки что begin end откомпилировалось, сам не понял как но работает (бубен помог :) )
first-leon
новенький
 
Сообщения: 68
Зарегистрирован: 20.04.2006 18:46:31

Сообщение Attid » 13.01.2007 18:35:49

да не на самом деле все не так страшно простые програмки fpc у меня уже компилит, с интерфейсом еще нет делай как написано в топике единственное что качать можно не весь
ftp://ftp.freepascal.org/fpc/contrib/cr ... ls2005.zip
а в ftp://ftp.freepascal.org/fpc/contrib/cross/mingw/ найти только под freebsd в твоем случае
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение first-leon » 13.01.2007 18:37:34

У меня тоже компилит простенькие. Но как выяснилось теперь PSP под FREEBSD нет. А это именно то ради чего я и делал кросс компиляцию :(
first-leon
новенький
 
Сообщения: 68
Зарегистрирован: 20.04.2006 18:46:31

Сообщение Attid » 13.01.2007 19:00:46

не всетаки не все так просто :/

Код: Выделить всё
c:\Projects\hello>fpc  -S2cgi -OG1 -TLinux -gl -vewnhi -l -Fu..\..\lazarus\lcl\u
nits\i386-linux\ -Fu..\..\lazarus\lcl\units\i386-linux\gtk\ -Fu..\..\lazarus\pac
kager\units\i386-linux\ -Fu. -oproject1 -dLCL -dLCLgtk project1.lpr
Hint: Start of reading config file C:\lazarus\FPC\2.0.4\bin\i386-Win32\fpc.cfg
Hint: End of reading config file C:\lazarus\FPC\2.0.4\bin\i386-Win32\fpc.cfg
Free Pascal Compiler version 2.0.4 [2007/01/13] for i386
Copyright (c) 1993-2006 by Florian Klaempfl
Target OS: Linux for i386
Compiling project1.lpr
Compiling Unit1.pas
Unit1.pas(16,28) Hint: Parameter "Sender" not used
Linking project1
C:\lazarus\FPC\2.0.4\bin\i386-linux\ld.exe: cannot find -lpthread
project1.lpr(17,1) Error: Error while linking
Error: C:\lazarus\FPC\2.0.4\bin\i386-Win32\ppc386.exe returned an error exitcode
(normal if you did not specify a source file to be compiled)


в проэкте одна форма с кнопкой и действием ShowMessage('hello word ');

с более сложными проэтами тоже засада лазарь я перекомпилил
Код: Выделить всё
c:\lazarus>c:\lazarus\FPC\2.0.4\bin\i386-win32\make.exe OS_TARGET=linux

с компонентами не понятки :/ у меня используются UIB and RxNew
там до линковки не доходит грит
Код: Выделить всё
Fatal: Can't find unit interfaces
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Attid » 13.01.2007 19:39:27

divinusproject писал(а):Если нужно компилировать в лазаре, то понадобятся библиотеки .so из линукса:


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

Сообщение divinusproject » 15.01.2007 12:58:30

путь к библиотекам указывается с ключом
-Fl
либо при запуске, либо в fpc.cfg
divinusproject
новенький
 
Сообщения: 49
Зарегистрирован: 16.05.2006 08:25:02
Откуда: Барнаул

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 31

Рейтинг@Mail.ru