Page 4 of 8
Re: FreePascal
Posted: Fri Jul 22, 2011 12:54 am
by bw
> после заголовка километровое пустое место идет
Ну как я и обещал, какая-то секция, возможно стэк. Хотя могу врать, забыл всё нахрен.
Про файлы. В играх есть lrl. В develop/fp/media есть fliplay.
И не бойся лазить по исходникам :-).
..bw
Re: FreePascal
Posted: Fri Jul 22, 2011 7:26 am
by Mario
Для стека как показывает практика достаточно 4 кб (по крайней мере для ассемблерных программ) и размещается он за пределами бинарника. Получается с данными в программе, либо с кодом в компиляторе, либо с кодом в преобразователе что-то не то.
Re: FreePascal
Posted: Sat Jul 30, 2011 3:07 pm
by mozGa_net
Кому лень искать, я нагуглил исходники 2.2.0
http://ignum.dl.sourceforge.net/project ... rce.tar.gz
Сам FPC потом куданить сброшу.
Re: FreePascal
Posted: Wed Sep 26, 2018 7:22 pm
by Siemargl
Апну я данную темку, наконец дошли но нее руки.
Собственно, итого - вариант кросс-компиляции Паскаля работает, хотя не слишком просто его запустить.
В теории, на svn лежит RTL, но она просто так не собирается. Потому тут выкладываю готовую RTL в приложении и инструкцию.
Инструкция для пользователя Win, но разницы с Lin никакой, кроме расширения скрипта сборки.
1.На sourceforge скачиваем компилятор старой версии 2.2.2 для Win32 (Linux-32)
Это принципиально, т.к. более новая RTL (даже 2.2.4) несовместима с портом RTL для Колибри.
Предположим, версия установлена как у меня в D:\_bin\FPC222
2. Настраиваем пути к D:\_bin\FPC222
3. Переименовываем каталог D:\_bin\FPC222\units\i386-win32\rtl , поскольку Колибри RTL хочет именно туда.
А он еще пригодится, если нужно будет этим же компилятором собирать Win32_приложения, например exe2kos
4. Распаковываем приложенный архив RTL поверх паскаля. в архиве 2 утилиты - exe2kos и kpack
5. Всё. Смотрим вызов компилятора в батнике build_sample.bat, там должно быть что то вроде
set KFPCDIR=D:\_bin\FPC222
set FPCDIR=D:\_bin\FPC222
fpc -Twin32 sample.pp
kpack sample.exe sample.kex
Как вариант, в батнике build.bat вызов fpcmake для готового makefile для проектов посложнее
Re: FreePascal
Posted: Wed Sep 26, 2018 7:42 pm
by Siemargl
Теперь инструкция по компиляции RTL.
Поскольку она несовершенна и может потребовать пофиксить какие либо баги или добавить недостающие функции.
Кроме того, возможно сюда добавить наработки из KolibriOS.lib для Delphi.
1. В
исходниках на SVN есть небольшие ошибки (я в душе не чаю, как работает автосборка, потому их коммитить пока не буду, чтобы не сломать). Fix под спойлером
Spoiler:
===================================================================
--- kos_def.inc (revision 7375)
+++ kos_def.inc (working copy)
@@ -113,3 +113,10 @@
VK_F10 = 121;
VK_F11 = 122;
VK_F12 = 123;
+
+/// siemargl add
+const
+ ExtensionSeparator = '.';
+ AllowDirectorySeparators : set of char = ['/'];
+ AllowDriveSeparators : set of char = [];
+
Index: system.pp
===================================================================
--- system.pp (revision 7375)
+++ system.pp (working copy)
@@ -19,6 +19,10 @@
MaxExitCode = 65535;
MaxPathLen = 512;
+ InitialStkLen = 4096; /// siemargl
+
+
+
UnusedHandle : THandle = -1;
StdInputHandle : THandle = 0;
StdOutputHandle: THandle = 0;
Index: sysutils.pp
===================================================================
--- sysutils.pp (revision 7375)
+++ sysutils.pp (working copy)
@@ -162,7 +162,7 @@
ReleaseFileRecord(Handle);
end;
-function FileTruncate(Handle: THandle; Size: Longint): Boolean;
+function FileTruncate(Handle: THandle; Size: Int64): Boolean;
begin
Result := False;
end;
===================================================================
--- build.bat (revision 7375)
+++ build.bat (working copy)
@@ -1,3 +1,4 @@
@echo off
+set FPCDIR=D:\_bin\FPC222\fpcbuild-2.2.2\fpcsrc
fpcmake -Twin32
make
\ No newline at end of file
2. Скачиваем файл исходников fpcbuild-2.2.2.zip из каталога
https://sourceforge.net/projects/freepa ... rce/2.2.2/
и распаковываем куда укажем в build.bat RTL Kolibri
3. Компилируем RTL с помощью fp/rtl/build.bat
4. папочку fp/units/rtl копируем поверх D:\_bin\FPC\units\i386-win32\rtl
5. при необходимости скомпилировать fp/utils/exe2kos,
создаем сначала руками папку fp/bin - туда попадет exe-шник (или он станет файлом bin. если не создать)
и не забываем подсунуть rtl от win32
Re: FreePascal
Posted: Fri Sep 28, 2018 3:38 pm
by Kopa
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме
Re: FreePascal
Posted: Fri Sep 28, 2018 10:51 pm
by Siemargl
Kopa wrote:Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме
Чего там обновлять, нового то ничего не появилось.
И такая непереносимость даже между минорными субверсиями это грустно - плохой код RTL в FPC.
Re: FreePascal
Posted: Wed Apr 08, 2020 12:16 pm
by ConLenov
Как под КолибриОС компилировать программу, написанную на FreePascal в Linux или WIndows?
Re: FreePascal
Posted: Wed Apr 08, 2020 3:07 pm
by Leency
ConLenov wrote:Как под КолибриОС компилировать программу, написанную на FreePascal в Linux или WIndows?
Под колибри FreePascal компилятор не портирован. Нужно использовать кросс-компиляцию.
Re: FreePascal
Posted: Wed Apr 08, 2020 7:58 pm
by ConLenov
Где должен находится файл "example.pp" для успешной компиляции?
Re: FreePascal
Posted: Thu Apr 09, 2020 3:23 am
by Leency
Сложно сказать, ты читал эту тему, особенно сообщения на этой странице?
Re: FreePascal
Posted: Fri Apr 10, 2020 11:28 am
by ConLenov
Я переименовал example.pp в sample.pp Компиляция в формате kex вроде прошла успешно. Но почему kex-файлы не запускаются в Колибри? (я использовал build_sample) C lrl.pp я делал то же самое
Re: FreePascal
Posted: Fri Apr 10, 2020 1:28 pm
by Leency
exe2kos есть, используешь?
Re: FreePascal
Posted: Tue Jun 23, 2020 1:32 pm
by Freeman
bw wrote:> после заголовка километровое пустое место идет
Ну как я и обещал, какая-то секция, возможно стэк. Хотя могу врать, забыл всё нахрен.
Это наверняка стандартная база $00400000. Чтобы уменьшить размер, нужно воспользоваться
PE Tool:
Code: Select all
pet -strip -trunc -rebase 0 -osver 0.7 -into my.exe
Re: FreePascal
Posted: Mon Oct 05, 2020 11:20 am
by maxcodehack
Нашел
вот это(
папка)?
Это порт fpc для колибри. Пусть может и не допортирован, но на форуме упоминания этого не видел
!
Он собирает примеры
отсюда.
Как смешно получилось - кросскомпиляцию завести не удалось, нашел кое какой порт - завелось. Добавил в kolibri de