FAQ FPC

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

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

Re: FAQ FPC

Сообщение Vadim » 26.05.2008 07:58:38

Вопрос
А чем занимается gcc, который идет в составе FPC?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: FAQ FPC

Сообщение Timid » 27.05.2008 14:28:46

Компилит исходники fpc
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: FAQ FPC

Сообщение ViTality » 27.05.2008 15:36:55

Timid писал(а):Компилит исходники fpc

напрашивается вопрос, почему в таком случае нет возможности скомпилить новую версию fpc без наличия старой бинарной, а только довольствуясь gcc?
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Re: FAQ FPC

Сообщение Иван Шихалев » 27.05.2008 16:19:49

Vadim писал(а):А чем занимается gcc, который идет в составе FPC?

На самом деле он используется только как препроцессор для windres. В исходниках FPC — только FPC и чуток ассемблера.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: FAQ FPC

Сообщение Timid » 28.05.2008 11:35:43

2Иван

Полноте, значит тащим ошибку из версии к версии, если компилимся старым компилятором.
Ядро компиллятора должно собираться на "внешнем языке". Библиотеки - те на паскале.
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: FAQ FPC

Сообщение Vadim » 28.05.2008 12:41:19

Timid
Что-то я не совсем понял:
Timid писал(а):Ядро компиллятора должно собираться на "внешнем языке".

"Внешний язык" - это gcc или предыдущая версия компилятора fpc?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: FAQ FPC

Сообщение Иван Шихалев » 28.05.2008 14:07:47

Timid писал(а):Полноте, значит тащим ошибку из версии к версии, если компилимся старым компилятором.

Про «развертку» компиляторов слышали?
Когда-то можно было и на «внешнем» — TP или Delphi, а сейчас — не уверен, поскольку это никому не надо.
И какую ошибку куда мы тащим?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: FAQ FPC

Сообщение Timid » 28.05.2008 18:14:03

Ну понятно, что "Самый первый" - это ассемблер. Не считая машинных кодов, конечно ;)

Что-то я не совсем понял:

Timid писал(а):
Ядро компиллятора должно собираться на "внешнем языке".

"Внешний язык" - это gcc или предыдущая версия компилятора fpc?


Внешний - признанный достаточно надежным для текущей платформы и позволяющий написать парсер языка (например, freepascal) до вызова системных функций или кодов процессора.

И какую ошибку куда мы тащим?

Ошибка всегда одна - проблема с памятью. В том числе - с учетом неправильного представления типов и т.д.
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: FAQ FPC

Сообщение immortal1977 » 14.07.2008 16:07:40

А не подскажет ли кто ответ на такой вопрос:
Пару лет назад устанавливал у себя FPC 1.x.x (субверсию не помню). Наткнулся на странный глюк - почти все юниты были скомпилированы и не было их исходников. В поисках исходников юнитов, я скачал ту же версию, но уже в сырцах, удалил все скомпиленные юниты и заменил их не скомпиленными версиями. После этого FPC отказался вообще что-то компилировать, в связи с чем и вопрос - как обстоит с исходниками юнитов дело сейчас. Хочу скачать FPC 2.2.0, но боюсь набрести на те же грабли - полное отсутствие юнитов в сырцах.

P.S. Вообще-то такая ситуация мне вообще не понятна. Слава богу "за Delphi не первый год замужем" и прекрасно понимаю всю абсурдность отсутствия сырцов в дефолтной поставке FPC. А если надо константу какую посмотреть, или реализацию функции... Буду благодарен за любой развернутый ответ.
immortal1977
новенький
 
Сообщения: 16
Зарегистрирован: 14.07.2008 15:52:23
Откуда: Новоуральск

Re: FAQ FPC

Сообщение Brainenjii » 14.07.2008 17:30:50

Всё есть ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: FAQ FPC

Сообщение Attid » 14.07.2008 18:07:56

Brainenjii писал(а):Всё есть ^_^

не обманывай человека, если будет тянуть скомпилиный ФПЦ то сурсов не будет.

Добавлено спустя 3 минуты 56 секунд:
immortal1977 писал(а):удалил все скомпиленные юниты и заменил их не скомпиленными версиями.

нахера удалял?

immortal1977 писал(а):После этого FPC отказался вообще что-то компилировать,

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


immortal1977 писал(а):боюсь набрести на те же грабли

есть 2 пути или качаешь и то и то или качаешь только исходники и компилятор и собираешь все сам, тебе советую первый путь.

immortal1977 писал(а):Буду благодарен за любой развернутый ответ.

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

Re: FAQ FPC

Сообщение immortal1977 » 14.07.2008 18:13:30

Attid писал(а):не обманывай человека, если будет тянуть скомпилиный ФПЦ то сурсов не будет.


А как же и главное где эти сырцы брать? Нужто опять ради юнитов еще и весь FPC в сырцах тягать?

Добавлено спустя 4 минуты 9 секунд:
Attid писал(а):нахера удалял?


Или чего-то не понимаю, или FPC от дельфей сильно отличается. Для компилирования моей проги, мне достаточно юнита в сырцах, а уже компилятор и юнит перекомпилит если юнит в Uses прписан. Разве нет?
immortal1977
новенький
 
Сообщения: 16
Зарегистрирован: 14.07.2008 15:52:23
Откуда: Новоуральск

Re: FAQ FPC

Сообщение Attid » 14.07.2008 23:35:58

immortal1977 писал(а):FPC от дельфей сильно отличается.

сильно, фпц сам по себе только консольные приложения пишет, а дельфи это гуи монстр =)


immortal1977 писал(а):уже компилятор и юнит перекомпилит если юнит

только зачем его компилировать каждый раз если достаточно один раз скомпилировать, положить в /usr/lib/fpc и юзать всю жизнь.
как показал опрос модифицируют стандартные либы очень маленький процент, и без понимания как оно работает тебе в этот процент стремится не стоит.



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

Re: FAQ FPC

Сообщение Sergei I. Gorelkin » 15.07.2008 14:08:31

immortal1977 писал(а):Или чего-то не понимаю, или FPC от дельфей сильно отличается. Для компилирования моей проги, мне достаточно юнита в сырцах, а уже компилятор и юнит перекомпилит если юнит в Uses прписан. Разве нет?


Да, если ты укажешь компилятору пути, по которым искать юнит и все его зависимости. Разница с Дельфи тут в том, что у Дельфи все исходники в одной папке, а у FPC раскиданы по нескольким сотням.

Attid писал(а):вот у тебя есть компилятор версии 1,х скачивай исходники 2,2 и собирай себе компилятор 2,2 потом собирай либы и будет тебе счастье, все на форуме и в статьях расписанно.


Версия 2.2 компилятором 1.x не соберется. Для этого нужен компилятор предыдущего релиза (тот же 2.2.0 если я понимаю правильно).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1395
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: FAQ FPC

Сообщение Attid » 16.09.2008 17:43:07

Вопрос : где взять бинарник фпц для компиляции

Ответ : http://svn.freepascal.org/svn/fpcbuild/ ... ll/binw32/

Вопрос : где взять бинутилс для кроскомпиляции

Ответ : ftp://ftp.freepascal.org/fpc/contrib/cross/ также могут пригодится
ftp://ftp.cygwin.com/
http://gnuwin32.sourceforge.net/
ftp://ftp.eu.kernel.org/pub/linux/devel/binutils/
http://packages.debian.org/stable/devel ... 2-binutils


Вопрос : как можно обновиться из свн имея определеный срез

Sergei I. Gorelkin
SVN может все! С помощью TortoiseSVN это делается примерно так:

1. Делаем checkout прямо в папку с исходниками, поставив галку Only check out top folder. При этом содержимое папки не выкачивается.

2. Кликаем правой кнопкой на папке и выбираем Show log. Получив лог, нажимаем Ctrl и выделяем ту ревизию, от которой исходники, и ту, до которой нужно обновиться. Опять кликаем правой кнопкой и выбираем Show differences as unified log.

3. В результате имеем патч, который накладываем на исходники обычным порядком (patch -p0 < file.diff)

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

Пред.След.

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

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

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

Рейтинг@Mail.ru