Сборка через SVN

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

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

Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сборка через SVN

Сообщение GAMER »

Решил собрать все новое. Вытянул через SVN Lazarus и fpc.
Но для того, что бы это все собрать нужны уже готовые бинарники.
1. Если использовать готовые бинарники фпс 2.2.2., то собственно, зачем мне тогда его собирать?
2. Если использовать старые бинарники (например 2.2.0), то не возникает ли при этом каких-то проблем при совместимости версий?

В каком порядке и как правильно тогда собирать с СВН? Нужно ли копировать в отдельный каталог? Можно ли держать несколько версий Лазаруса и не будет ли между ними конфликта? (например какой лазарус будет подвязан к расширению файлов).
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

GAMER писал(а):В каком порядке и как правильно тогда собирать с СВН?

тебе нужно бинарник фпц, его там же в свн найти можно, потом скомпилируешь исходники фпц, там ртл , он требуется для компиляции всего остального.

посла этого собираешь лазарус и все.

GAMER писал(а):Нужно ли копировать в отдельный каталог?

я компилю приям там же , народ любит сначало экспорт делать. дело вкуса.

GAMER писал(а):Можно ли держать несколько версий Лазаруса

в венде вроде можно, в лине будут проблемы, там много на каталог пользователя завязано.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Attid писал(а):тебе нужно бинарник фпц, его там же в свн найти можно, потом скомпилируешь исходники фпц, там ртл , он требуется для компиляции всего остального.

Где именно. В том что я скачал, его нет. Он в какой-то другой ветке находится? Файлы брал отсюда http://svn.freepascal.org/svn/fpc/trunk/
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Attid писал(а):
GAMER писал(а):Нужно ли копировать в отдельный каталог?

я компилю приям там же , народ любит сначало экспорт делать. дело вкуса.


Экспорт, имеется в виду обновление к последней версии или убирание папки .svn?

При попытке make all в папке сорсов fpc выдается сообщение
makefile:129: *** Compiler .exe not found. Stop.

В переменную PATH настроено PATH=C:\LAZ_WRK\BINW32;
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

GAMER писал(а):Экспорт, имеется в виду обновление к последней версии или убирание папки .svn?

второе.
Я как-то сталкивался, что с ними FPC не собирался, make залазил в один из .svn каталогов... наверное был просто баг в Makefile, обычно всё собирается без проблем.

GAMER писал(а):При попытке make all в папке сорсов fpc выдается сообщение makefile:129: *** Compiler .exe not found. Stop.

компилятор должен находиться через PATH. Либо его нужно указать через параметр PP:
make PP=<путь к ppc386.exe> all

А вообще о компиляции с исходников можно почитать Особенности национальной кросс-компиляции
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Attid писал(а):http://svn.freepascal.org/svn/fpcbuild/trunk/install/binw32/

Либо я чего-то не понимаю, либо что-то не так. Здесь нет файлов fpc.exe and ppc386.exe. Как же без них компилить?

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

Сообщение Attid »

GAMER писал(а):Здесь нет файлов fpc.exe and ppc386.exe.

и правда =/ чет думал что есть. значит нельзя =)
или собирать его дельфевым компилятором =) хотя последний фпц может уже и не умеет так собираться.

выходит вариант просить бинарник на форуме =/
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Win32, http://shamangrad.net/tmp/ppc386-win32.tar.bz2 точно не помню какая версия, вроде 2.2.0
Linux, http://shamangrad.net/tmp/ppc386-2.0.4.tar.bz2 версия 2.0.4

GAMER писал(а):Если использовать старые бинарники (например 2.2.0), то не возникает ли при этом каких-то проблем при совместимости версий?

Проблем быть не должно (по крайней мере если первая цифра версии совпадает) - более старая версия дожна компилировать любую более новую. С помощью новой версии не всегда удается скомпилировать более старую.

GAMER писал(а):Либо я чего-то не понимаю, либо что-то не так. Здесь нет файлов fpc.exe and ppc386.exe. Как же без них компилить?

Всё равно в том каталоге есть всё что нужно кроме самого FPC и без него ты врядли соберешь, как, что и почему читай в особенностях кросскомпиляции (^)

GAMER писал(а):Но все же вопрос был, как собирать только через SVN.

А как собрать компилятор C/C++ без компилятора C/C++ ?
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Продолжение.
Ремарка по поводу отсутствия компилятора была как реакция на пост
Сообщение Attid 16.09.2008 16:35:05
http://svn.freepascal.org/svn/fpcbuild/ ... ll/binw32/

Получив бинарник компилятора любым способом (например инсталировав пакет fpc) и прописав в PATH где оно все находится удалось собрать последний билд FPC.

Теперь сборка Лазаруса.
Не находит модуль Contnrs.
Fatal: Can't find unit Contnrs used by Masks

Поискав по форумам подобное сообщение, увидел, что не только у меня так. Понятно, что компилятор не видит каталог Units.
Советуют в файл fpc.cfg прописать что-то подобное к
-fuc:\lazarus/pp/units/$TARGET
-fuc:\lazarus/pp/units/$TARGET/*
-fuc:\lazarus/pp/units/$TARGET/rtl

1.Такой файл я не нашел, но в чем проблема его создать? :)
Создал я его в каталоге, ../bin/i386-win32 (Правильно или не там его нужно создавать?)
2. Подкорректировал пути:
-fud:\lazwrk\fpc\2_3_1\units\i386-win32
-fud:\lazwrk\fpc\2_3_1\units\i386-win32/*
-fud:\lazwrk\fpc\2_3_1\units\i386-win32/rtl
Получаю: Error: Illegal parameter: -fud:\lazwrk\fpc\2_3_1\units\i386-win32
3. Просмотрев сообщения компилятора в прецессе работы меняю на
-FUd:\lazwrk\fpc\2_3_1\units\i386-win32
-FUd:\lazwrk\fpc\2_3_1\units\i386-win32/*
-FUd:\lazwrk\fpc\2_3_1\units\i386-win32/rtl
Опять получаю: Fatal: Can't find unit Contnrs used by Masks

Как указать компилятору где искать модули?

Добавлено позже.
Не угадал я. :) Нужно было так:
-Fud:\lazwrk\fpc\2_3_1\units\i386-win32
-Fud:\lazwrk\fpc\2_3_1\units\i386-win32/*
-Fud:\lazwrk\fpc\2_3_1\units\i386-win32/rtl

Но Лазарус все же не собрался :lol: Теперь другие проблемы. Буду разбираться дальше.
Проблемы такие:
lazxmlforms.pas(59,52) Warning: Constructing a class "TXMLObjectWriter" with abs
tract method "WriteUnicodeString"
lazxmlforms.pas(77,47) Warning: Constructing a class "TXMLObjectReader" with abs
tract method "ReadUnicodeString"
gcc: Warning: `-x c' after last input file has no effect
gcc: No input files
D:\LAZWRK\FPC\2_3_1\BIN\I386-W~1\windres.exe: no resources
lazarus.pp(122,1) Error: Error while compiling resources
lazarus.pp(122,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Последний раз редактировалось GAMER 17.09.2008 12:23:44, всего редактировалось 1 раз.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

а где действительно находится скомпилированный модуль Contnrs? по какому пути?
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Модуль находится здесь. -Fud:\lazwrk\fpc\2_3_1\units\i386-win32/fcl-base

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

Сообщение Attid »

только первую букву большую, а вторую маленькую

Код: Выделить всё

-Fuc:\fpc\2.2.2/units/$FPCTARGET/
-Fuc:\fpc\2.2.2/units/$FPCTARGET/*
-Fuc:\fpc\2.2.2/units/$FPCTARGET/rtl


Добавлено спустя 56 секунд:
гы долго писал ответ =)
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Я так понимаю, что затык здесь:
gcc: Warning: `-x c' after last input file has no effect
gcc: No input files

Но что это значит?

Вообщем не нравится компилятору вот это:
{$IFDEF WINDOWS}
{$R lazarus.rc}
{$ENDIF}
Если сделать так
{$IFDEF WINDOWS}
// {$R lazarus.rc}
{$ENDIF}
то собирается. (Вроде :) ) Еще не инсталировал, по этому утверждать не могу.

Добавлено спустя 1 час 34 минуты 57 секунд:
Продолжение.
Итак. Подрихтовав файли с подключенгием ресурсов таким образом:
{$IFDEF WINDOWS}
// {$R lazarus.rc}
{$ENDIF}
я собрал Лазарус. Потом вернув файлы в первоначальный вид, то есть убрав ремарки, я уже пересобрал Лазарь средствами Лазаря. И. о, ЧУДО, все собралось. Почему оно не собиралось из командной строки - для меня загадка.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

а lazarus.rc присутсвовал физически?
Ответить