Difference between revisions of "IDE Window: Compiler Options/ru"

From Lazarus wiki
Jump to navigationJump to search
Line 2: Line 2:
  
 
== Пути (Paths) ==
 
== Пути (Paths) ==
 +
[[image:CompilerOptions-Paths.png|none|Compiler Options - Paths]]
  
 
* Относительные пути дополняются путём от файла проекта или каталога пакета (где расположен файл .lpi/.lpk).
 
* Относительные пути дополняются путём от файла проекта или каталога пакета (где расположен файл .lpi/.lpk).
* Эти пути добавляются в пути поиска (search paths).
+
* Эти пути добавляются в пути поиска. Они не заменяют существующие пути.
 +
* В среде IDE есть один набор путей поиска для каждого пакета / проекта. Это означает, что пакет может иметь пути поиска, отличные от активного проекта. <br/> «Набор путей поиска» относится к пути поиска объекта, включает в себя путь поиска, путь поиска источников, ...
 
* Если пакет или проект использует другие пакеты, со своими путями поиска. То эти "унаследованные" пути можно найти на закладке [[#Унаследованные (Inherited)]].
 
* Если пакет или проект использует другие пакеты, со своими путями поиска. То эти "унаследованные" пути можно найти на закладке [[#Унаследованные (Inherited)]].
 +
** Если вы не хотите использовать путь поиска, унаследованные от используемого пакета, вы должны изменить параметры компилятора используемого пакета.
 
* Пользуясь системой пакетов Lazarus вам практически не придётся устанавливать пути поиска вручную.
 
* Пользуясь системой пакетов Lazarus вам практически не придётся устанавливать пути поиска вручную.
* Компилятор FreePascal имеет собственный файл настроек (по умолчанию /etc/fpc.cfg) который определяет набор путей поиска модулей. Например для нахождения модулей FPC из RTL или FCL вроде 'classes', 'sysutils'.
+
* Компилятор FreePascal имеет собственный файл настроек (по умолчанию /etc/fpc.cfg) который определяет набор путей поиска модулей. Например для нахождения модулей FPC из RTL или FCL вроде 'classes', 'sysutils'. Не добавляйте туда пути поиска к исходным файлам (.pas, .inc).
 
* Пути поиска разделяются точкой с запятой ';'.
 
* Пути поиска разделяются точкой с запятой ';'.
 
* Начальные и конечные пробельные символы игнорируются и автоматически убираются IDE. IDE нормализует пути поиска и добавляет разделитель пути (windows: /, все остальные: \). Пути каталога автоматически конвертируются в формат подходящий текущей операционной системе при открытии файла проекта .lpi или .lpk.
 
* Начальные и конечные пробельные символы игнорируются и автоматически убираются IDE. IDE нормализует пути поиска и добавляет разделитель пути (windows: /, все остальные: \). Пути каталога автоматически конвертируются в формат подходящий текущей операционной системе при открытии файла проекта .lpi или .lpk.
 
* Вы можете использовать макросы. Например $(TargetCPU). Подробнее смотрите [[IDE Macros in paths and filenames]].
 
* Вы можете использовать макросы. Например $(TargetCPU). Подробнее смотрите [[IDE Macros in paths and filenames]].
* Если вы не хотите использовать унаследованные пути поиска от использованых пакетов, то вам нужно изменить свойства компиляции этих использованных пакетов.
+
* В среде IDE есть один набор настроек путей для каждого каталога:
 +
** Каждый каталог в пути поиска модуля проекта получает все пути поиска проекта.
 +
** Каждый каталог в пути поиска модуля пакета получает все пути поиска пакета.
 +
** Другие каталоги получают пути поиска проекта. Если путь поиска проекта содержит '.', каталог также увидит каталог проекта.
 +
* Использование "uses unitname in 'filename'" не влияет на любой путь поиска.
  
 
=== Другие модули (Other Unit Files) ===
 
=== Другие модули (Other Unit Files) ===

Revision as of 20:37, 15 June 2019

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) русский (ru)

Пути (Paths)

Compiler Options - Paths
  • Относительные пути дополняются путём от файла проекта или каталога пакета (где расположен файл .lpi/.lpk).
  • Эти пути добавляются в пути поиска. Они не заменяют существующие пути.
  • В среде IDE есть один набор путей поиска для каждого пакета / проекта. Это означает, что пакет может иметь пути поиска, отличные от активного проекта.
    «Набор путей поиска» относится к пути поиска объекта, включает в себя путь поиска, путь поиска источников, ...
  • Если пакет или проект использует другие пакеты, со своими путями поиска. То эти "унаследованные" пути можно найти на закладке #Унаследованные (Inherited).
    • Если вы не хотите использовать путь поиска, унаследованные от используемого пакета, вы должны изменить параметры компилятора используемого пакета.
  • Пользуясь системой пакетов Lazarus вам практически не придётся устанавливать пути поиска вручную.
  • Компилятор FreePascal имеет собственный файл настроек (по умолчанию /etc/fpc.cfg) который определяет набор путей поиска модулей. Например для нахождения модулей FPC из RTL или FCL вроде 'classes', 'sysutils'. Не добавляйте туда пути поиска к исходным файлам (.pas, .inc).
  • Пути поиска разделяются точкой с запятой ';'.
  • Начальные и конечные пробельные символы игнорируются и автоматически убираются IDE. IDE нормализует пути поиска и добавляет разделитель пути (windows: /, все остальные: \). Пути каталога автоматически конвертируются в формат подходящий текущей операционной системе при открытии файла проекта .lpi или .lpk.
  • Вы можете использовать макросы. Например $(TargetCPU). Подробнее смотрите IDE Macros in paths and filenames.
  • В среде IDE есть один набор настроек путей для каждого каталога:
    • Каждый каталог в пути поиска модуля проекта получает все пути поиска проекта.
    • Каждый каталог в пути поиска модуля пакета получает все пути поиска пакета.
    • Другие каталоги получают пути поиска проекта. Если путь поиска проекта содержит '.', каталог также увидит каталог проекта.
  • Использование "uses unitname in 'filename'" не влияет на любой путь поиска.

Другие модули (Other Unit Files)

Это пути поиска для модулей паскаля (.ppu, .pp, .pas, .p) вашего проекта или пакета. Посмотрите заголовок окна чтобы узнать какого. Этот путь будет передан компилятору FreePascal, который добавит их к своим Unit Path.

  • Добавляя и убирая модули из проекта/пакета IDE спросит вас о необходимости изменить пути поиска.
  • Этот путь содержит каталоги вашего проекта (пакета) который содержит файлы .pas, .pp or .p.
  • ОСТОРОЖНО: Не добавляйте каталоги использованный пакетов в этот путь. Это повлечёт за собой то, что FPC скомпилирует файлы .ppu включенного пакета и поместит их в ваш каталог проекта. Вы столкнётесь с множественными версиями .ppu и получите странные 'Can not find unit' ошибки.

Например: Не добавляйте никакие FPC или LCL каталоги исходников в этот путь.

  • Если вы хотите использовать одни и те же модули между разными проектами, создайте пакет для них. Это просто.

Включаемые файлы (Include Files)

Это путь поиска для включаемый файлов (таких как файлы .inc, .lrs). Этот путь передаётся компилятору FreePascal Compiler, который добавляет их к своим путям поиска Включаемых файлов (Include Path), которые используются в директивах включения вроде {$I filename.inc} или {$INCLUDE filename.inc}.

Другие исходные коды (Other sources)

Это пути поиска для модулей исходного кода паскаль, которые используются только IDE, но не компилятором.

Например: У вас имеется каталог с исходниками и каталог с соответствующими файлами .ppu. Вы добавляете каталог с .ppu в пути 'Другие модули (Other Unit Files)' а каталог с .pas в 'Другие исходные коды (Other sources)'. Таким образом компилятор будет использовать файлы .ppu и не будет пытаться компилировать их каждый раз. В то же самое время, IDE найдёт файлы с исходниками и будет работать функция Найти объявление (Find Declaration).

Библиотеки (Libraries)

Это пути поиска для библиотек (файлов .dll или .so или .a).

Каталог вывода модулей (Unit output directory)

Это каталог в который компилятор будет выводить файлы компиляции вроде .ppu, .o, .rst файлов.

Примечание: Пакеты обычно наследуют их каталоги вывода через настройки использования 'usage'.

Дополнения к путям отладчика (Debugger path addition)

Эти каталоги добавляются в пути поиска отладчика IDE, когда он ищет исходники (модули и файлы включения).

Библиотека виджетов LCL (LCL widget type)

Это выбор используемого набора виджетов LCL. Обычно используется набор виджетов по умолчанию. Если вы хотите попробовать другой набор виджетов, просто выберите его.

  • Набор виджетов по умолчанию - это набор виджетов для текущего проекта.
  • Набор виджетов по умолчанию зависит от текущей операционной системы. Например: win32 для windows 2000.
  • Вы не должны устанавливать набор виджетов для пакетов, поскольку проект не сможет этого изменить. Устанавливайте его для пакетов только если этот пакет может использоваться лишь с одним конкретным набором виджетов LCL.

Обработка (Parsing)

Смотрите Free Pascal - Online documentation

Режим синтаксиса (Syntax mode)

Выберите режим по умолчанию. Если модуль не содержит директивы {$mode somemode}, выбранный режим будет использоваться по умолчанию.

Смотрите Free Pascal - Online documentation


Параметры синтаксиса (Syntax Options)

  • Операторы в стиле C (C Style Operators) (*=, +=, /= and -=)
  • Включить код Assert (Include Assertion Code)
  • Разрешить LABEL и GOTO (Allow LABEL and GOTO)
  • INLINE в стиле C++ (C++ Styled INLINE)
  • Макросы в стиле C (C Style Macros (global))
  • Конструктор должен быть init (деструктор должен быть done) (Constructor name must be init (destructor must be done))
  • Ключевое слово Static в объектах (Static Keyword in Objects)
  • Использовать строки Ansi (Use Ansi Strings)

Стиль ассемблера (Assembler style)

  • -Rdefault по умолчанию
  • -Ratt AT&T
  • -Rintel Intel

Код (Code)

Смотри Free Pascal - Online documentation

Связывание (Linking)

Смотри Free Pascal - Online documentation

Сообщения (Verbosity (Messages))

Смотри Free Pascal - Online documentation. Примечание: добавление большого количество сообщений сильно замедляет процесс компиляции даже если большинство сообщений будет спрятано в окне сообщений.

Эта страница была переименована в Verbosity, начиная с версии 0.9.27.

Сообщения (Messages)

(Появилась в версии 0.9.27) Эта страница позволяет контролировать какие сообщения компилятор будет показывать в Notes, Hints и Warnings. Необходимо, чтобы компилятор FP поддерживал переключатель -m (версия 2.2.2 или выше).

Также возможно указать язык текста сообщений (файл должен быть в кодировке Utf-8), чтобы видеть сообщения компилятора переведёнными без необходимости модифицировать файл конфигурации компилятора fpc.cfg.

Пример перевода файла сообщений можно найти ${LazarusDir}/fpc/${FPCTARGET}/msg, например C:\Lazarus\fpc\2.2.3\msg

Другие (Other)

Смотри Free Pascal - Online documentation

Унаследованные (Inherited)

Эта страница позволяет посмотреть все настройки компилятора унаследованные от использованных пакетов. Пакеты наследуют свойства через их свойства 'usage'.

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

Узлы ниже показывают унаследованные параметры каждого пакета.

Компиляция (Compilation)

Создать Makefile (Create Makefile)

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

Выполнить перед компиляцией (Execute before)

Настройте здесь команду, которая будет выполнена перед запуском компилятора.

Вызов при (Call on):

  • компиляции (Compile) - выполняется при нормальной компиляции (F9).
  • сборке (Build) - выполняется, когда происходит полная сборка. Например это может быть скрипт, который чистит каталоги.
  • запуске (Run) - выполняется, когда выполняется быстрая компиляция. При запуске проекта, IDE проверяет нужно ли чего-нибудь компилировать. Если ничего компилировать не нужно, то IDE пропускает этап компиляции. Установите эту опцию, чтобы выполнять команду даже если этап компиляции был пропущен.

IDE может разбирать и фильтровать вывод этой команды и останавливаться при ошибках. Отметьте какие сообщения вы хотите видеть в IDE.

Компилятор (Compiler)

Здесь указывается компилятор используемый проектом или пакетом. По умолчанию это макрос $(CompPath), который заменяется версией компилятора из переменных окружения.

Выполнить после компиляции (Execute after)

Настройте здесь команду, которая будет выполнена после того, как закончится работа компилятора. Смотри выше 'Выполнить перед компиляцией (Execute before)' для дополнительной информации.

Кнопки (Buttons)

Тест (Test)

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

Показать параметры (Show Options)

Открывает диалог и показывает текущие настройки параметров командной строки.

Загрузка/Сохранение (Load/Save)

Открывает диалог для сохранение и/или загрузки текущих настроек компилятора из/в файла xml.

Ok

Эта кнопка применяет выбранные настройки и закрывает диалог.

Cancel

Эта кнопка откатывает на предыдущую версию настроек и закрывает диалог.



Макросы IDE

Compiler Options - IDE Macros


Для [версий с] 0.9.29 по 1.0.x

Эта страница позволяет определить макросы и условия вашего проекта/пакета. В среде IDE уже есть много [предопределенных] макросов. Вы можете добавить свои собственные макросы, которые действительны при загрузке проекта/пакета. Условия позволяют устанавливать значения макросов в зависимости от целевой платформы и других макросов. Например, вы можете добавить опцию компоновщика при компиляции для Mac OS X.

Используйте левую кнопку +, чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку +, чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице build modes (меню IDE / Project / Project Options / Compiler options / Build Modes). Чтобы удалить значение или макрос, выберите его и нажмите кнопку -.

В условных выражениях используется язык сценариев, похожий на паскаль, и они редактируются в текстовом редакторе внизу страницы. Многие ярлыки работают как в редакторе исходного кода, включая завершение слова/идентификатора (по умолчанию: Ctrl + Spase).

Для получения дополнительной информации о макросах сборки и условных выражениях см. Macros and Conditionals.

Compileroptions buildmacros1.png

Эта страница существует с версии 0.9.29.

Для [версии] 1.1 и выше

Эта страница доступна только для пакетов. Это позволяет пакетам определять свои собственные макросы IDE. В среде IDE уже есть много [предопределенных] макросов.

Используйте левую кнопку +, чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку +, чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице build modes ("режимы сборки") (меню IDE / Project / Project Options / Compiler options / Build Modes). Чтобы удалить значение или макрос, выберите его и нажмите кнопку -.

Для получения дополнительной информации о макросах сборки и условных выражениях см. Macros and Conditionals.

Прочее

См. Free Pascal - Online documentation

Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде

 -dRELEASE

Затем в режиме сборки будет скомпилирован только код, окруженный

{$ IFDEF RELEASE}
...
{$ ENDIF}

Это можно использовать в качестве альтернативы системе макросов, особенно если вы перешли с Delphi.

Пробелы в начале и в конце удаляются. Разрывы строк заменяются пробелом перед передачей компилятору. Ведущий пробел добавляется автоматически.

Среда IDE заменяет макросы IDE в пользовательских параметрах и анализирует параметры. Флаги, такие как -dRelease, передаются в codetools, поэтому редактор исходного кода узнает о них сразу.

Warning-icon.png

Предупреждение: Не добавляйте параметры пути -Fu, -Fi, -Fl, -FU, -o. Вместо этого используйте поля на странице Пути (Paths). Среда IDE игнорирует пути в пользовательских параметрах. Она не обновляет их при добавлении или удалении файлов или при открытии проекта на другом хосте.

Нажав кнопку All options... ("Все параметры ..."), вы можете легко настроить параметры FPC:

options.png