Для используемого компилятора fpc отсутствует файл настройки

Обновлено: 07.07.2024

Начинающим пользоваться FPC (переходящим с Турбо Паскаля)

Итак, в этом посте я бы хотел собрать в одном месте несколько советов для тех, кто только начинает использовать FPC, как настроить его, чтобы получать максимум пользы и минимум глюков и ошибок в программах.

I. Установка компилятора
(если у вас FPC уже установлен и работает - можете пропустить этот раздел и перейти сразу к настройке)

Заходим на страничку закачек FreePascal: Download, ищем в списке название вашей архитектуры (Intel/AMD/PowerPC, и т.д), и переходим по ссылке с названием вашей ОС. И вот теперь - внимание : читаем инструкцию перед тем, как начать скачивать пакет. Вполне может случиться так, что по той ссылке, по которой вы перешли, лежит кросс-компилятор (т.е., компилятор, позволяющий собирать программу под одной операционной системой - Host OS - для ее выполнения под другой операционной системой - Target OS). Именно это происходит при попытке скачать FPC для Win64 для AMD:

(обратите внимание на выделенное предупреждение: "Это пакет кросс-компилятора с i386-win32 на x86_64-win64. Перед тем, как вы сможете его использовать, вы должны установить FPC for i386-win32)

То есть, процесс выглядит так: (Показать/Скрыть)
Скачиваем 32-битную версию по ссылке, устанавливаем ее и начинаем работать, а уж потом, если есть необходимость собирать именно 64-битные программы, сверху устанавливаем кросс-компилятор, и компилируем уже с его помощью под 64 бита.

    Убеждаемся, что Options->Mode выставлено в Normal или в Debug, все-таки программы нужно для начала тестировать в режиме отладки, и только потом, если все работает, переключаться в Release.

* Range Checking (это позволит вам получать при отладке ошибки в случае выхода за пределы массивов)
* Stack Checking (что позволит отлавливать переполнение стека, это очень полезно при разработке рекурсивных подпрограмм, да и для нерекурсивных тоже может помочь)
* I/O Checking (контроль правильности операций ввода/вывода)
* Integer Overflow Checking (контролирует результаты некоторых операций с целыми числами и генерирует ошибку при слишком большом значении результата)

Что это дает? Более детальную информацию об ошибках/недочетах в вашей программе. В идеале программа не должна вообще содержать не только ошибок, но и предупреждений.

И что? Где она, ваша автоматическая инициализация? Не работает уже, в переменной i - мусор, она ж не глобальная, а локальная.

III. Настройка рабочего пространства (Desktop)

Для начала - Options->Environment->Preferences, и убеждаемся, что автосохранение выбрано не только для Environment и Desktop - файлов, но и для файлов редактора, для чего отмечаем Editor Files. Теперь перед запуском программы среда будет сохранять все исходники, и если произойдет какая-нибудь ошибка, и среду придется закрыть принудительно - вы не потеряете все внесенные изменения.

  • History Lists (это будет сохранять список недавно открытых окон в меню File, ниже пункта Exit. Если отметку снять - то этот список сохраняться не будет, и после входа в IDE пункт File->Exit всегда будет последним. Не очень удобно)
    .
  • Watch Expressions (выбор этого пункта даст указание среде программирования сохранять также список просматриваемых в окне Watches переменных и выражений. Очень удобно при отладке - не надо каждый раз заносить заново выражения в список)
    .
  • Breakpoints (по крайней мере, я для себя этот пункт установил. Когда отлаживается какая-то программа, и мне становится временно не нужной точка останова - я ее никогда не удаляю, а просто отключаю через Debug->Breakpoint List->(правая кнопка мыши на нужной точке останова)->Toggle state, мало ли, потом опять понадобится вернуться к той же точке при тех же условиях. А поскольку обычно программа отлаживается не за одни раз, то и сохранение списка Breakpoint-ов тоже очень помогает.)

1. Tab Size. По умолчанию установлен в 8 пробелов - но это очень много, трех/четырех символов вполне достаточно.
2. Indent Size. По умолчанию = 1, но это не совсем удобно. Лучше выставить это значение одинаковым со значением Tab Size, тогда смещение блока будет более логичным - сразу на ту же величину, на которую Tab перебрасывает строку. Чтобы изменения этих значений вступили в силу, нужно перезапустить IDE.

Я надеюсь, все знают, что такое смещение блока текста, и зачем оно нужно? (Показать/Скрыть)

А главное - как это делается? Все просто: любым способом выделяете строки текста, которые нужно сдвинуть влево/вправо. Можете "протянуть" мышкой, можете установить курсор на начало, "зажать" Shift и клавишей "курсор вниз" выделить столько строк, сколько нужно. Есть еще способ, с которого я когда-то начинал в Турбо-Паскале работу с блоками: ставим курсор на первый выделяемый символ, жмем Ctrl+K + B (отмечаем начало блока), потом курсор - на последний выделяемый символ, жмем Ctrl+K + K (отметили конец блока - он тут же выделился).

А теперь надо этот блок сместить. Просто нажимаем Ctrl+K + I (если сдвигаем вправо), или Ctrl+K + U (если влево), и весь блок сдвинулся, как видите, на величину Indent Size ( теперь вы понимаете, почему желательно, чтоб эти 2 значения совпадали? ):

, очень удобно, когда надо быстренько выровнять какой-то фрагмент кода.

3. (хотя, как справедливо заметил Lapp, это не совсем работает) но все-таки если вас раздражает автодополнение ключевых слов - отключите его в этом же диалоге: снимите галочку с "CodeComplete Enabled"

Чтобы окончательно убрать автодополнение - нужно еще зайти в "Options->Environment->CodeComplete", и в поле "Min. Length" ввести любое значение, больше длины максимального слова из списка. Самые длинные слова в списке - Implementation и ResourceString (оба длиной 14 символов), то есть, вводите Min. Length = 15, и подсказок больше не будет.

Вроде бы с настройками разобрались. Теперь осталось еще кое-что.

Настройка файлов помощи

Ну вот, вроде все о начальной настройке. Если есть вопросы (я имею в виду вопросы по настройке IDE, а не очередной холивар на тему использовать Goto или нет) - задавайте, попробуем помочь.

Arm-linux-gcc под CentOS: отсутствует файл
Здраствуйте! Мне нужно работать с arm-linux-gcc, но при его запуске не хватает файла.

fpc под Linux
Здравствуйте, помогите кто-нибудь. Почему после установки всех пакетов вручную в разделе.

Как редактировать cfg файл
Файл взять у программ Майл.Ру агент для java телефонов. Вот внутри есть файл под названием cfg без.

В Delphi 10 Seattle не создается файл .cfg
Что сделать чтобы создавался? он нужен для автоматической сборки проекта

Решение

/etc/fpc.cfg, но файл должен быть корректным, не испорченным. Читай: Missing or corrupt fpc.cfg file

Не помогло. Раньше 2.7.1 работало, но я что-то с версиями намутил.

Добавлено через 22 минуты
Переустановил FPC, компилироваться начало. но ошибка осталась

Добавлено через 35 минут
Можете свой FPC.cfg кинуть, если linux?

Всё решение нашлось, теперь все идеально. Для будущего поколения:
Как уже сказал UI нужно убедится, что файл fpc.cfg коректный(если нет - используйте команду fpcmkcfg и заново правьте). Однако же также необходимо убедится, что используется правильный файл. Для этого напишите
собственно и покажет, откуда читается файл.
Если в системе было несколько fpc, то они могут не до конца удалится. У меня вредный файл распологался по адресу

/.fpc.cfg После его удаление чтение пошло из /etc

Открыть cfg-файл и вытащить из него данные
Всем привет! Есть cfg файл сформированный программой написанной на Delphi (скорее всего Delphi 7).

Ошибка: испорчен или отсутствует файл xllex.dll словаря excel
Если открываю файл с расширением xls то все норм работает, если xlsx то выдает ошибку: "испорчен.


Произошла непредвиденная ошибка. Вероятно, на диске отсутствует файл. Повторите запуск
Здравствуйте. Скачала PascalABC.NEТ, установила. Написала программу, нажала выполнить. Ошибки.


Ошибка при запуске через exe файл. Отсутствует Qt5Core.dll
Доброе время суток. Из среды Qt Creator 5.3.2 при сборке Выпуск, программа запускается и работает.

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

Примечание: справедливости ради должен сказать, что есть замечательный инструмент для сборки компилятора и Лазаруса в автоматическом режиме на любой ОСи, который называется fpcupdeluxe, свежие релизы которого всегда можно скачать здесь.

1. Создаем необходимую структуру папок.

Структура должна быть строго упорядочена, для чего - станет понятно ниже.
Для начала создаем общую для всех папку, пусть для примера это будет.

Теперь положим в нее еще три папки:
а) бинарные файлы последней стабильной версии компилятора (нужны для компиляции и сборки транковой версии fpc из ресурсов)
б) собственно свежий транк компилятора (лежит тут)
в) и свежий транк Лазаря (лежит тут)

Бинарные (скомпилированные) файлы последнего стабильного релиза компилятора для win32 можно взять здесь (на момент правки статьи это была версия 3.0.4, которая лежит здесь в виде виде экзешника fpc-3.0.4.i386-win32.exe). Скачиваем его, запускаем, для распаковки указываем путь

В указанной папке должны появиться папки bin, demo, doc и т.д. Чтобы не "мусорить" в реестре, снимите в чекбоксах инсталлятора соответствующие галочки.




примечание ( очень важное ): штатный инсталлятор обязательно прописывает пути к fpc_304 в системную переменную PATH (Мой компьютер - Свойства - Дополнительные параметры системы - Переменные среды - PATH). Прежде, чем двигаться дальше, необходимо удалить эти пути из системы. Иначе при сборке и компиляции среды Лазарус получит ссылки на стабильный релиз компилятора, а не на транковый.

2. Создаем bat-файлы и собираем исходники.

Поскольку в Винде проще запустить файл мышкой, чем мучиться с командной строкой, то создадим командные файлы, которые сделают всю рутину за нас.

Если процесс сборки компилятора и Лазаруса будет единовременным, то лучше использовать один bat-файл (об этом ниже).
Если же собирается либо компилятор, либо среда, то удобнее использовать один из них. Нам понадобятся их два:
а) для компиляции и сборки транковой версии компилятора (назовем его makefpc.bat)
б) для компиляции и сборки транковой версии Лазаруса (назовем его makelaz.bat)

Создаем файл makefpc.bat со следующим содержимым

1. команда set FPC_current_rev=fpc_trunk задает папку с текущей ревизией собираемого транка. Если планируется использовать несколько версий компилятора (например, для каждой сборки Лазаря свою), то папку с новой версией лучше сразу переименовывать после скачивания из репозитория (например, fpc_r37690), внося соответствующую правку в батник (для указанного примера это будет выглядеть так: setFPC_current_rev=fpc_r37690).

2. выделенная желтым строка от make clean до data2inc.exe - единое целое без переносов на новую строку


Запускаем файл от имени Администратора


В результате появится папка

, где будут лежать бинарники новой версии.

Cоздаем файл makelaz.bat для компиляции и сборки Лазаря, который первоначально будет иметь следующую конфигурацию

@ echo off
chcp 1251

set PATH = %MyBinutils% ; %MyLaz_root% ; %MyFPC% ; %PATH%

:: переходим в корень Лазаруса
cd /d %MyLaz_root%

:: компилим и собираем Лазарь
make clean all OPT="-glw2"

Примечание: есть еще один, упрощенный способ, сборки Лазаруса. Он особенно хорошо подходит в том случае, если хочется поставить для экспериментов другую версию транка, не удаляя предыдущие. Для этого нужно сделать следующее:


3. Вводим команду компиляции и сборки среды

и ждем окончания процесса

Примечание 3: если хочется полностью обновить и компилятор и среду, то можно воспользоваться объединенным батником, который будет выглядеть примерно так (назовем его make_fpc_laz.bat)
@ echo on
chcp 1251

set PATH = %MyRoot% ; %FPC_source% ; %FPC_binutils% ; %FPC_stable_binutils% ; %MyLaz_root% ; %PATH%

:: переходим в корень fpc_trunk
cd %FPC_source%

@ echo off

:: переходим в каталог с утилитами нового fpc
cd /d %FPC_binutils%

:: переходим в корень Лазаруса
cd /d %MyLaz_root%

:: компилим и собираем Лазарь
make clean all OPT="-glw2"

Теперь идем в папку lazarus_trunk и запускаем startlazarus.exe.

При первом запуске среда потребует указать пути к компилятору, дебаггеру, конфигурационному файлу и сорцам комплятора. Все это нужно искать в папке fpc_trunk (строго говоря, достаточно указать папку с сорцами компилятора и путь к fpc.exe, среда остальное найдет сама. Перфекционисты могут также прописывать пути при помощи макросов среды и относительных путей, например, в нашем случае путь к сорцам компилятора будет выглядеть в IDE как: ../fpc_trunk, а к файлу fpc.exe будет таким: $(FPCSrcDir)/bin/$(TargetCPU)-$(TargetOS)/fpc.exe.
Если я правильно понял, пути надо выставлять именно в такой очередности, тогда и макросы "заработают" правильно ).




3. Доработка напильником.

Если для Дельфи существуют утилиты, позволяющие сохранять настройки среды, то в отношении Лазаря ситуация проявляется с точностью до наоборот. В самой среде механизм сохранения пользовательских настроек находится пока в зачаточном состоянии, простое копирование файлов не всегда работает корректно.

К счастью, самую нудную часть настройки (на мой взгляд), а именно цветовую схему редактора, всегда можно импортировать в среду, если она была предварительно экспортирована в виде xml-файла из другой сборки.

Итак, открываем среду из которой мы собираемся перейти на свежую, идем СервисПараметрыРедакторЦвета



Жмем на кнопку с картинкой дискетки, чтобы сохранить текущую цветовую схему. Ищем папку _config с настройками свежеустановленного Лазаря, где открываем папку userschemes, а потом и сохраняем цветовую схему с каким-нибудь нетривиальным названием.



Теперь закрываем старую среду и открываем новую, идем к тому же пункту настроек и в выпадающем списке


находим и выбираем сохраненную ранее схему


В утешении могу добавить, что для Лазаруса от разработчиков можно скачать множество цветовых схем. Чтобы использовать их, достаточно распаковать архив в выше упомянутую папку userschemes и перезапустить среду.

Заходим по ссылке, выбираем вашу ОС и качаем файл lazarus-1.6.0-fpc-3.0.0-cross*

Описывать подробно как установить данное дополнение я не буду, если коротко то вам нужно нажать Далее, Далее, Готово с указание пути где лежит ваш Lazarus.

После того как мы все установили, запускаем нашу IDE

1

Далее все как обычно, бросаем на форму необходимые компоненты, пишем для них обработчики событий. Сделаем с вам простое приложение которое будет менять заголовок формы. Кидаем на нашу форму 2-ве кнопки: 1. Заголовок, 2. Выход

2

Для перехода в редактор кода объекта, дважды жмем левой кнопкой мыши по нужному объекту. Для кнопки заголовок пишем след. код:

Для второй кнопки:

Теперь заходим в Проект->Параметры проекта.

3

Настройка и целевая платформа, в строке Операционная система, выбираем WinCE

4

Если вы программируете под процессоры ARM, то выбираем соответствующий пункт меню.

После чего Компилируем наш проект, и закидываем скомпилированный файл EXE на устройство.

Готово. Если у вас остались вопросы, задавайте постараюсь ответить.

Для тестирования приложения на ПК под управлением Windows, вы можете скачать эмулятор Windows CE 6.5

Hello word на WinCE обновлено: 25 марта, 2016 автором: Oleg E.

2 комментариев “ Hello word на WinCE ”

При нажатии ОК выдает окно:
Для используемого компилятора FPC отсутствует файл настройки. Вероятно, компилятор не сможет найти ряд модулей. Проверьт, что FPS установлен правильно.

При компиляции получаю ошибку:
Компиляция пакета FCL 1.0.1: Код завершения 1, ошибок: 1
Error: Illegal parameter: -Twince

Есть ли у вас какие-либо рекомендации, буду благодарна.

Ирина, добрый день.
Мне кажется Вы качаете компилятор wince не под свою разрядность процессора.
Попробуйте скачать и установить lazarus-1.8.4-fpc-3.0.4-win64.exe

Читайте также: