Сборка через SVN
Модератор: Модераторы
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Сборка через SVN
Решил собрать все новое. Вытянул через SVN Lazarus и fpc.
Но для того, что бы это все собрать нужны уже готовые бинарники.
1. Если использовать готовые бинарники фпс 2.2.2., то собственно, зачем мне тогда его собирать?
2. Если использовать старые бинарники (например 2.2.0), то не возникает ли при этом каких-то проблем при совместимости версий?
В каком порядке и как правильно тогда собирать с СВН? Нужно ли копировать в отдельный каталог? Можно ли держать несколько версий Лазаруса и не будет ли между ними конфликта? (например какой лазарус будет подвязан к расширению файлов).
Но для того, что бы это все собрать нужны уже готовые бинарники.
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
- Контактная информация:
GAMER писал(а):В каком порядке и как правильно тогда собирать с СВН?
тебе нужно бинарник фпц, его там же в свн найти можно, потом скомпилируешь исходники фпц, там ртл , он требуется для компиляции всего остального.
посла этого собираешь лазарус и все.
GAMER писал(а):Нужно ли копировать в отдельный каталог?
я компилю приям там же , народ любит сначало экспорт делать. дело вкуса.
GAMER писал(а):Можно ли держать несколько версий Лазаруса
в венде вроде можно, в лине будут проблемы, там много на каталог пользователя завязано.
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Attid писал(а):тебе нужно бинарник фпц, его там же в свн найти можно, потом скомпилируешь исходники фпц, там ртл , он требуется для компиляции всего остального.
Где именно. В том что я скачал, его нет. Он в какой-то другой ветке находится? Файлы брал отсюда http://svn.freepascal.org/svn/fpc/trunk/
- GAMER
- энтузиаст
- Сообщения: 627
- Зарегистрирован: 06.08.2008 13:41:07
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
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/
- Контактная информация:
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
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
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
- Контактная информация:
GAMER писал(а):Здесь нет файлов fpc.exe and ppc386.exe.
и правда =/ чет думал что есть. значит нельзя =)
или собирать его дельфевым компилятором =) хотя последний фпц может уже и не умеет так собираться.
выходит вариант просить бинарник на форуме =/
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
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
Проблем быть не должно (по крайней мере если первая цифра версии совпадает) - более старая версия дожна компилировать любую более новую. С помощью новой версии не всегда удается скомпилировать более старую.
Всё равно в том каталоге есть всё что нужно кроме самого FPC и без него ты врядли соберешь, как, что и почему читай в особенностях кросскомпиляции (^)
А как собрать компилятор C/C++ без компилятора C/C++ ?
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
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Продолжение.
Ремарка по поводу отсутствия компилятора была как реакция на пост
Сообщение 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
Но Лазарус все же не собрался
Теперь другие проблемы. Буду разбираться дальше.
Проблемы такие:
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
Ремарка по поводу отсутствия компилятора была как реакция на пост
Сообщение 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
Но Лазарус все же не собрался
Проблемы такие:
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 раз.
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
только первую букву большую, а вторую маленькую
Добавлено спустя 56 секунд:
гы долго писал ответ =)
Код: Выделить всё
-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
- Откуда: Ужгород-Днепр, Украина
- Контактная информация:
Я так понимаю, что затык здесь:
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}
я собрал Лазарус. Потом вернув файлы в первоначальный вид, то есть убрав ремарки, я уже пересобрал Лазарь средствами Лазаря. И. о, ЧУДО, все собралось. Почему оно не собиралось из командной строки - для меня загадка.
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}
я собрал Лазарус. Потом вернув файлы в первоначальный вид, то есть убрав ремарки, я уже пересобрал Лазарь средствами Лазаря. И. о, ЧУДО, все собралось. Почему оно не собиралось из командной строки - для меня загадка.
