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

From Lazarus wiki
Jump to navigationJump to search
 
(42 intermediate revisions by 3 users not shown)
Line 59: Line 59:
 
*Если выходной каталог пакета пуст, макрос $(PkgOutDir) также [будет пустым] и не будет наследоваться для нисходящих пакетов и проектов. Используйте точку ".", чтобы определить текущий каталог.
 
*Если выходной каталог пакета пуст, макрос $(PkgOutDir) также [будет пустым] и не будет наследоваться для нисходящих пакетов и проектов. Используйте точку ".", чтобы определить текущий каталог.
  
=== Target file name ===
+
=== Имя целевого файла ===
  
Note: Only projects have this. This option is not available for packages.
+
{{Note| только проекты имеют это. Эта опция недоступна для пакетов.}}
  
Set here the filename of the generated executable. If the file is relative it will be expanded with the project directory (where the .lpi file is). If no file is given the executable is put into the unit output directory and has the name of the main source file name (usually the .lpr file) without the extension. If no extension is given, the default extension for the platform is added (e.g. ''.exe'' for MS Windows, none for others).
+
Установите здесь имя файла сгенерированного исполняемого файла. Если файл является относительным, он будет расширен каталогом проекта (где находится файл .lpi). Если файл не указан, исполняемый файл помещается в выходной каталог модуля и имеет имя основного исходного файла (обычно файла .lpr) без расширения. Если расширение не указано, добавляется расширение по умолчанию для платформы (например, «.exe» для MS Windows, но не для других).
When a new project was not yet saved and is built the IDE saves the files to the test directory. The relative files are then relative to this directory.
+
Когда новый проект еще не был сохранен и собран, среда IDE сохраняет файлы в тестовом каталоге. Относительные файлы затем относятся к этому каталогу.
  
Lazarus passes the compiler switch
+
Lazarus передает переключатель компилятора
*'''-o''' to define the target file name.
+
*'''-o''' определяет имя целевого файла.
*'''-FE''' if the target file name is not in the project directory (where the lpi file is)
+
*'''-FE''' если имя целевого файла отсутствует в каталоге проекта (где находится файл lpi)
*'''-FU''' if the unit output directory is not empty
+
*'''-FU''' если выходной каталог устройства не пуст
  
If the target file name is in another directory (not the directory of the .lpi file), Lazarus will pass the '''-FE''' switch to the compiler to make sure that the secondary files, like ''.o'' and ''.rst'' are put into the same directory. If you cleared the ''unit output directory'' then the IDE will not pass the '''-FU''' switch and the compiler will generate the ''.ppu/.o'' files of the units in the target directory too.
+
Если имя целевого файла находится в другом каталоге (не в каталоге файла .lpi), Lazarus передаст компилятору ключ '''-FE''', чтобы убедиться, что вторичные файлы, такие как ''.o'' и ''.rst'' помещаются в один и тот же каталог. Если вы очистили ''unit output directory''(каталог вывода модуля), то среда IDE не передаст переключатель '''-FU''', и компилятор сгенерирует файлы ''.ppu/.o'' для модулей тоже в целевом каталоге.
  
If you cleared the ''unit output directory'' '''and''' your project target file is in the project directory, then neither '''-FU''' nor '''-FE''' is passed to the compiler and the compiler will work Delphi compatible and generate the ''.ppu/.o'' file of each unit in the same directory as the unit.
+
Если вы очистили ''unit output directory''(каталог вывода модуля) '''и''' целевой файл проекта находится в каталоге проекта, то ни '''-FU''' ни '''-FE''' не передается компилятору, и компилятор будет работать с Delphi-совместимым файлом и генерировать файл «.ppu/.o» для каждого модуля в том же каталоге, что и модуль.
  
==== Apply Conventions ====
+
==== Применение конвенций ====
  
Enable this to apply various naming conventions depending on the target platform.
+
Включите это, чтобы применить различные соглашения об именах в зависимости от целевой платформы.
  
*Windows: If it is a program, it appends the '.exe' extension; if it is a library, it appends '.dll'.
+
*Windows: Если это программа, она добавляет расширение .exe; если это библиотека, к ней добавляется «.dll».
*Unix (e.g. Linux, BSD, Darwin/OS X): If it is a library the name is lowercased and if the name does not start with 'lib' it prepends 'lib'.
+
*Unix (например, Linux, BSD, Darwin/macOS): если это библиотека, то имя в нижнем регистре, и если имя не начинается с 'lib', оно предшествует 'lib'.
*Linux, BSD: If it is a library it appends '.so'.
+
*Linux, BSD: Если это библиотека, то добавляется '.so'.
*Darwin/OS XIf it is a library it appends '.dylib'.
+
*Darwin/macOSЕсли это библиотека, то добавляется '.dylib'.
  
 
=== Examples ===
 
=== Examples ===
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
! Unit output directory !! Target file name !! Generated options !! Note
+
! Каталог вывода модуля !! Имя целевого файла !! Сгенерированные варианты !! Примечание
 
|----
 
|----
|lib/$(TargetCPU)-$(TargetOS)||empty||-FElib\x86_64-win64 -olib\x86_64-win64\project1.exe||all output files are put into ''lib\x86_64-win64\''
+
|lib/$(TargetCPU)-$(TargetOS)||пустой||-FElib\x86_64-win64 -olib\x86_64-win64\project1.exe||все выходные файлы помещаются в ''lib\x86_64-win64\''
 
|----
 
|----
|lib||foo||-FUlib -FE. -ofoo.exe||all unit output files like ppu and o are put into ''lib\'', program output files are put into the base directory (where the lpi is)
+
|lib||foo||-FUlib -FE. -ofoo.exe||все выходные файлы модуля, такие как <tt>ppu</tt> и <tt>o</tt>, помещаются в ''lib\'', выходные файлы программы помещаются в базовый каталог (где находится lpi)
 
|----
 
|----
|lib||foo/bar||-FUlib -FEfoo -ofoo\bar.exe||all unit output files like ppu and o are put into ''lib\'', program output files are put into ''foo''
+
|lib||foo/bar||-FUlib -FEfoo -ofoo\bar.exe||все выходные файлы модуля, такие как <tt>ppu</tt> и <tt>o</tt>, помещаются в ''lib\'', выходные файлы программы помещаются в ''foo''
 
|----
 
|----
|empty||empty||-oproject1.exe||ppu files are put to the ''.pas'' files, e.g. a ''src\unit1.pas'' creates a ''src\unit1.ppu''
+
|пустой||пустой||-oproject1.exe||файлы <tt>ppu</tt> помещаются в файлы ''.pas'', например, ''src\unit1.pas'' создаст ''src\unit1.ppu''
 
|----
 
|----
|empty||foo||-ofoo.exe||ppu files are put to the ''.pas'' files
+
|пустой||foo||-ofoo.exe||файлы <tt>ppu</tt> помещаются в файлы ''.pas''
 
|----
 
|----
|empty||. (single dot and Apply conventions disabled)|| ||ppu files are put to the .pas files, output file is whatever the compiler's default is
+
|пустой||. (одна точка и применение соглашений отключены)|| ||файлы <tt>ppu</tt> помещаются в файлы ''.pas'', выходной файл может быть любым, как определит по умолчанию компилятор
 
|}
 
|}
  
Line 114: Line 114:
 
* Вы не должны устанавливать набор виджетов для пакетов, поскольку проект не сможет этого изменить. Устанавливайте его для пакетов только если этот пакет может использоваться лишь с одним конкретным набором виджетов LCL.
 
* Вы не должны устанавливать набор виджетов для пакетов, поскольку проект не сможет этого изменить. Устанавливайте его для пакетов только если этот пакет может использоваться лишь с одним конкретным набором виджетов LCL.
  
== Config and Target ==
+
== Настройка и целевая платформа (Config and Target) ==
 
[[File:CompilerOptions-Config and Target.png]]
 
[[File:CompilerOptions-Config and Target.png]]
  
== Build modes ==
+
== Режимы сборки (Build modes) ==
  
=== Adding, deleting, activating build modes ===
+
=== Добавление, удаление, активация режимов сборки ===
  
Only projects have build modes. A package does not have build modes.
+
Только проекты имеют режимы сборки. Пакет не имеет режимов сборки.
  
Build modes allow to define '''sets of compiler options''' and to quickly switch between these sets. For example you can define a ''mode'' for debugging which compiles your project with range checking, while your default mode does not.
+
Режимы сборки позволяют определять '''sets of compiler options''' (наборы опций компилятора) и быстро переключаться между этими наборами. Например, вы можете определить ''mode'' (режим) для отладки, который компилирует ваш проект с проверкой диапазона, а ваш режим по умолчанию - нет.
  
'''Note:''' If you want to pass some options depending on the platform, for example passing some extra linker options under OS X, please take a look at [[#Build_Macros|Build Macros]].
+
{{Note| Если вы хотите передать некоторые параметры в зависимости от платформы, например, передать некоторые дополнительные параметры компоновщика в macOS, пожалуйста, посмотрите на [[IDE_Window:_Compiler_Options/ru#.D0.9C.D0.B0.D0.BA.D1.80.D0.BE.D1.81.D1.8B_IDE|макросы IDE]].}}
  
How to reach this dialog: Project / Project Options / Compiler Options.
+
Как добраться до этого диалога: Project(Проект) / Project Options(Настройки проекта) / Compiler Options (Настройки компилятора).
Make sure that "Build Modes" is enabled.
+
Убедитесь, что "Build Modes" (Режимы сборки) включены.
  
 
[[File:EditProjectBuildModes.png]]
 
[[File:EditProjectBuildModes.png]]
  
Click on the "..." button right to add/remove/rename build modes:
+
Нажмите кнопку «...» справа, чтобы добавить/удалить/переименовать режимы сборки:
  
 
[[File:ListOfBuildModes1.png]]
 
[[File:ListOfBuildModes1.png]]
  
The grid contains the list of build modes with three columns.  
+
Сетка содержит список режимов сборки с тремя столбцами.  
  
The first column shows which mode is currently active, it is checked. When you activate another mode, all compiler options pages will load the settings of the new mode, including the macro values on the build modes page. There is always only one mode active and you can only edit the properties of one mode at a time. Which mode is active is stored in the session file (lps). The default mode is the first mode.  
+
Первый столбец показывает, какой режим в данный момент активен, он отмечен. Когда вы активируете другой режим, все страницы параметров компилятора будут загружать настройки нового режима, включая значения макросов на странице режимов сборки. Всегда активен только один режим, и вы можете редактировать свойства только одного режима за раз. Какой режим активен, он хранится в файле сеанса (lps). Режим по умолчанию - первый режим.
  
If your project stores the session in a separate lps file (see Project options / Session / Save session info in), you can store extra modes in the lps session file, so that each developer can have her own set of modes. In this case the second column shows where the mode is stored, in the lpi or the lps (in session). Keep in mind that the first mode is the default mode for the project, so it must be stored in the project, not in the session file.
+
Если ваш проект хранит сеанс в отдельном файле lps (см. Project options(Параметры проекта) / Session(Сеанс работы) / Save session info in(Сохранять сведения о сеансе работы в)), вы можете сохранить дополнительные режимы в файле сеанса lps, чтобы у каждого разработчика был свой набор режимов. В этом случае второй столбец показывает, где хранится режим, в lpi или lps (в сеансе). Имейте в виду, что первый режим является режимом по умолчанию для проекта, поэтому он должен храниться в проекте, а не в файле сеанса.
  
The last column is the name of the mode. It is an arbitrary string, so you can give it a short name or a whole sentence.
+
Последний столбец - это название режима. Это произвольная строка, поэтому вы можете дать ей короткое имя или целое предложение.
  
*The '''plus''' button adds a new mode, by duplicating the currently active one and activates it.
+
*Кнопка '''плюс''' добавляет новый режим, дублируя текущий активный и активируя его.
*The '''minus''' button delete the currently selected mode. There must be at least one mode. If you delete the first mode, which is the default mode, the second mode automatically becomes the default mode.
+
*Кнопка '''минус''' удаляет текущий выбранный режим. Должен быть хотя бы один режим. Если вы удалите первый режим, который является режимом по умолчанию, второй режим автоматически становится режимом по умолчанию.
 
*The '''up''', '''down''' buttons allows to reorder the modes.
 
*The '''up''', '''down''' buttons allows to reorder the modes.
*The '''rightmost''' button shows the differences between build modes.
+
* Кнопки '''вверх''', '''вниз''' позволяют изменить порядок режимов.
  
'''Hint:''': Once you added another build mode there will be a new button in the IDE main bar to quickly switch the currently active mode.
+
'''Подсказка:''': после того, как вы добавили другой режим сборки, в главной панели IDE появится новая кнопка для быстрого переключения текущего активного режима.
  
'''Note:''': When opening a new project with an old IDE (<0.9.31), you will only see the default mode. If you save the project with the old IDE you will loose all other modes, all macros and conditionals.
+
{{Note|При открытии нового проекта со старой IDE (<0.9.31) вы увидите только режим по умолчанию. Если вы сохраните проект со старой IDE, вы потеряете все остальные режимы, все макросы и условия.}}
  
''Build modes'' exist since 0.9.31.
+
Опция «Режимы сборки» существует с версии 0.9.31.
  
===Adding a release and debug build modes===
+
===Добавление режимов release(окончательный релиз) и debug(отладка)===
  
The most common task for projects will be adding a simple release and a simple debug build modes. Remember to always use the debug build mode, because debugging will not work in the release build mode, and then only use the release build mode in the final release of the application.
+
Наиболее распространенной задачей для проектов будет добавление простых режимов сборки окончательного релиза(release) и отладки(debug). Не забывайте всегда использовать режим сборки debug(отладки), потому что отладка не будет работать в режиме сборки окончательного релиза, а затем использовать режим сборки окончательного релиза только в окончательной версии приложения.
  
# Go to Project / Project Options / Compiler Options
+
# Перейдите к Project(Проект) / Project Options(Параметры проекта) / Compiler Options(Параметры компилятора)
# Enable "Build Modes" at the top. A selector for build modes and an edit button will appear.
+
# Включите "Build Modes"(Режимы сборки) вверху. Появится комбобокс для режимов сборки и кнопка редактирования.
# Click on the button labelled "..." to open the build modes dialog.
+
# Нажмите на кнопку с надписью «...», чтобы открыть диалог режимов сборки.
# Click on Create Debug and Release modes. This adds the two build modes "Debug" and "Release".
+
# Нажмите на кнопку "Create Debug and Release modes"(Создать режимы отладочной и конечной сборки). Это добавит два режима сборки "Debug" and "Release".
# Close the dialog.
+
# Закройте диалоговое окно
  
[[File:BuildModesAddedDebugAndRelease1.png]]
+
[[File:BuildModesAddedDebugAndRelease1.png|bottom]]
  
Every Build Mode is a complete set of compiler options. You can switch easily between your build modes either via the combobox at the top of the project options, or in the IDE main toolbar, with the arrow button right of the ''Compile'' button.
+
Каждый режим сборки представляет собой полный набор параметров компилятора. Вы можете легко переключаться между режимами сборки либо с помощью комбинированного списка в верхней части параметров проекта, либо на главной панели инструментов IDE с помощью кнопки со стрелкой справа от кнопки ''Compile''(Скомпилировать).
  
[[File:BuildModeSelectorInIDEToolBar1.png]]
+
[[File:BuildModeSelectorInIDEToolBar1.png|bottom]]
  
Once we select the ''Debug'' build mode, all configurations from the project options dialog will be specific to this build mode. Here is the default ''Debugging'' page in ''Debug'' mode:
+
После того, как мы выберем режим сборки ''Debug'', все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию ''Debugging''(Отладка) в режиме ''Debug'':
  
[[File:BuildModeDebugPageDebugging.png]]
+
[[File:BuildModeDebugPageDebugging.png|bottom]]
  
When we select the ''Release'' build mode, all configurations from the project options dialog will be specific to this build mode. Here is the default ''Debugging'' page in ''Release'' mode:
+
Когда мы выбираем режим сборки ''Release'', все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию ''Debugging''(Отладка) в режиме ''Release'':
  
[[Image:BuildModeReleasePageDebugging.png]]
+
[[Image:BuildModeReleasePageDebugging.png|bottom]]
  
===Selecting the active build mode===
+
===Выбор активного режима сборки===
  
One can select the currently active build mode either in the "Project Options" dialog or in the main IDE Window, in a special button with a drop down which will appear only if the project has more then 1 build mode, as one can see in this screenshot:
+
Можно выбрать активный в настоящий момент режим сборки либо в диалоговом окне "Project Options"(Параметры проекта), либо в главном окне IDE, в специальной кнопке с выпадающим списком, который появится только в том случае, если проект имеет более одного режима сборки, как можно увидеть на этом скриншоте:
  
[[Image:Selecting_Build_Mode_Main_IDE_Windows.png|none]]
+
[[Image:Selecting_Build_Mode_Main_IDE_Windows.png|bottom]]
  
=== Project macros ===
+
=== Макросы проекта ===
  
See [[IDE_Window:_Compiler_Options#Changing_the_LCLWidgetType_in_Version_1.1_and_above|here]] for adding your own macros or defining the LCLWidgetType macro.
+
См. [[IDE_Window:_Compiler_Options/ru#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_LCLWidgetType_.D0.B2_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D0.B8_1.1_.D0.B8_.D0.B2.D1.8B.D1.88.D0.B5|здесь]], чтобы добавить собственные макросы или переопределить макросы LCLWidgetType.
  
 
== Обработка (Parsing) ==
 
== Обработка (Parsing) ==
Line 228: Line 228:
  
  
== Debugging ==
+
== Отладка(Debugging) ==
 
[[image:CompilerOptions-Debugging.png|none|Compiler Options - Debugging]]
 
[[image:CompilerOptions-Debugging.png|none|Compiler Options - Debugging]]
  
== Сообщения (Verbosity (Messages)) ==  
+
== Вывод(сообщения) (Verbosity (Messages)) ==  
 
[[image:CompilerOptions-Verbosity.png|none|Compiler Options - Verbosity]]
 
[[image:CompilerOptions-Verbosity.png|none|Compiler Options - Verbosity]]
  
Line 247: Line 247:
 
Пример перевода файла сообщений можно найти ${LazarusDir}/fpc/${FPCTARGET}/msg, например C:\Lazarus\fpc\2.2.3\msg
 
Пример перевода файла сообщений можно найти ${LazarusDir}/fpc/${FPCTARGET}/msg, например C:\Lazarus\fpc\2.2.3\msg
  
== Custom Options ==
+
== Пользовательские параметры ==
[[image:CompilerOptions-Custom_Options.png]]
+
[[image:CompilerOptions-Custom_Options.png|bottom]]
  
You'll typically define some compiler options here. For example you can define in a build mode something like
+
Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде
  
 
<syntaxhighlight lang="pascal">-dRELEASE</syntaxhighlight>
 
<syntaxhighlight lang="pascal">-dRELEASE</syntaxhighlight>
  
Then in the build mode, only the code surrounded by the {$IFDEF RELEASE} {$ENDIF} will be compiled. This can be used alternatively to the Macro system, particularly if you come from Delphi.
+
Затем в режиме сборки будет скомпилирован только код, окруженный {$IFDEF RELEASE} {$ENDIF}. Это можно использовать в качестве альтернативы системе Macro, особенно если вы "переехали" с Delphi.
 +
 
 +
Пробелы в начале и в конце удаляются. Разрывы строк заменяются пробелом перед передачей компилятору. Ведущий пробел добавляется автоматически.
 +
 
 +
Среда IDE заменяет макросы IDE в пользовательских параметрах и анализирует параметры. Флаги, такие как <tt>-dRelease</tt>, передаются в codetools, поэтому редактор исходного кода знает их немедленно.
 +
 
 +
{{Warning| Не добавляйте параметры пути -Fu, -Fi, -Fl, -FU, -o. Вместо этого используйте поля на странице [[IDE_Window:_Compiler_Options/ru#.D0.9F.D1.83.D1.82.D0.B8_.28Paths.29|Пути]]. Среда IDE игнорирует пути в пользовательских параметрах. Она не обновляет их при добавлении или удалении файлов или при открытии проекта на другом хосте.}}
 +
 
 +
== Дополнения и перекрытия ==
 +
Страница «Дополнения и перекрытия» существует с 1.1.
 +
 
 +
=== Обзор ===
 +
Страница содержит матрицу вариантов сборки.
 +
 
 +
[[File:CompilerAdditionsAndOverrides1.png|bottom]]
 +
 
 +
Параметры «Пользовательские параметры», «Каталог вывода» и «Макросы IDE» в любой цели можно включать и выключать отдельно для каждого режима сборки.
 +
 
 +
Таким образом, для каждой цели есть Матрица с включающимися флажками.
 +
 
 +
Вертикальные слова в заголовке показывают все режимы сборки, которые в настоящее время определены, и этим они обозначают столбец в матрицах.
 +
 
 +
Справа от каждой строки любой матрицы дается описание типа (например, «Пользовательский», «OutDir» или «Макрос IDE») и значение включаемой опции.
 +
 
 +
=== Типы вариантов сборки ===
 +
Вариант сборки может
 +
*установить '''IDE macro'''(макрос IDE). Значение должно иметь вид '''MacroName:=Value'''. Например, '''LCLWidgetType:=qt'''. Вы можете использовать макросы IDE в значении, но не в имени.
 +
*добавить некоторые пользовательские параметры компилятора через '''Custom''' (например, добавить -O3). Вам не нужен ведущий пробел. Это добавляется автоматически. См. примечания по [[IDE_Window:_Compiler_Options/ru#.D0.9F.D1.80.D0.BE.D1.87.D0.B5.D0.B5| пользовательским параметрам]].
 +
*переопределить выходной каталог (-FU) через '''OutDir'''. Обратите внимание, что при использовании относительного каталога, такого как ''lib/$(TargetOS)'', добавляется рабочий каталог цели, а не каталог проекта. Например, когда опция переопределяет выходной каталог пакета ''SynEdit'', тогда выходной каталог synedit изменяется на ''<lazarusdir>/components/synedit/lib/$(TargetOS)''.
 +
 
 +
Вы можете создать новую опцию, нажав кнопку '''Add'''(Добавить) над матрицей. Вы можете изменить тип опции в любое время.
 +
 
 +
=== Включение параметров сборки в режимах сборки ===
 +
Опция может быть включена с режимами сборки проекта. Вы можете включить опцию только в одном режиме сборки или нескольких из них. Каждая опция сборки имеет строку в матрице, каждый режим сборки имеет столбец в матрице. Каждая комбинация имеет флажок.
 +
Параметры сборки применяются сверху вниз.
 +
 
 +
Обратите внимание, что включение параметров в режимах сборки сеанса (хранящихся в .lps) '''не''' изменяет файл ''lpi''. Эта информация хранится в файле ''lps''. Вот почему эти чекбоксы имеют желтый фон.
 +
 
 +
Текущий активный режим и параметры сборки имеют зеленый фон.
 +
 
 +
Когда вы переименовываете режим сборки, также переносятся включенные состояния опций lpi и lps. Включенные состояния параметров IDE *не* переносятся. Например, когда опция IDE включена для режима ''debug'' и вы переименовываете режим в ''Test'', тогда опция IDE все еще включена для режима ''debug'' для других проектов.
 +
 
 +
=== Место хранения настроек сборки ===
 +
Настройка может быть сохранена в
 +
*проекте (.lpi)
 +
*сеансе работы проекта (.lps)
 +
*или в конфигурации IDE (environmentmentoptions.xml) - тогда он доступен для всех проектов
 +
 
 +
Параметры сборки применяются сверху вниз. Это означает, что сначала параметры сохраняются в IDE, затем параметры сохраняются в .lpi и, наконец, параметры сохраняются в сеансе работы.
 +
 
 +
С помощью кнопок «Вверх» и «Вниз» над матрицей вы можете перемещать параметры сборки и целевые объекты в другие группы хранения.
 +
 
 +
{{Note| Опция в конфигурации IDE для режима ''debug'' применяется кj ''' всем''' проектам с этим режимом. Например, когда вы открываете сторонний проект с режимом сборки ''debug'', опция будет применена и предупреждения не будет. Это может сломать проект.}}
  
Spaces at start and end are removed. Line breaks are replaced by a space before passing to the compiler. A leading space is added automatically.
+
=== Цели параметров сборки ===
 +
Параметры сборки могут быть применены к проекту и/или к одному или нескольким пакетам. Вы можете ограничить область действия параметров сборки, чтобы они применялись только к определенным целям (проектам, пакетам). Параметры сборки сгруппированы по '''Targets'''(Целям). '''Targets'''(Цели) не чувствительны к регистру и допускают звездочку "*" для любого количества произвольных символов и знак вопроса "?" за один произвольный символ. Вы можете исключить цели, добавив минус "-". Чтобы отредактировать цель, нажмите позади 'Targets:'.
  
The IDE substitutes IDE macros in custom options and parses the options. Flags like -dRelease are passed to codetools, so the source editor knows them immediately.
+
Примеры целей:
 +
*'''*''': Звездочка "*" - значит подходит всем. Опция применяется к проекту и всем пакетам. Это по умолчанию.
 +
*'''LCL,Lazutils''': Применимо только к пакетам "LCL" и "LazUtils"
 +
*'''*dsgn,-syneditdsgn''': Применимо ко всем пакетам, оканчивающимся на "dsgn", исключая "syneditdsgn".
 +
*'''#project''': Это соответствует самому проекту. Опция применяется только к проекту, а не к используемым пакетам.
 +
*'''#ide''': Это соответствует IDE. Опция применяется только к IDE, а не к установленным пакетам.
  
{{Warning|Do not add the path options -Fu, -Fi, -Fl, -FU, -o. Use the fields on the page [[IDE_Window:_Compiler_Options#Paths|Paths]] instead. The IDE ignores the paths in the custom options. It does not update them, when you add or delete files or when you open the project on another host.}}
+
Вы можете иметь любое количество целей. Вы можете создать новую цель с помощью кнопки '''Add'''(Добавить) над матрицей. Вы можете перемещать цели с помощью кнопок вверх и вниз в другие хранилища. Все параметры сборки целевой группы также перемещены.
  
== Унаследованные (Inherited) ==
+
[[File:targets_project_options.png|bottom]]
  
Эта страница позволяет посмотреть все настройки компилятора унаследованные от использованных пакетов. Пакеты наследуют свойства через их свойства 'usage'.
+
=== Цвета в матрице ===
 +
*'''Зеленый''': текущий активный режим и опции
 +
*'''Желтый''': сохраненные в сеансе работы без изменения lpi
 +
*'''Красный''': ошибка синтаксиса
  
Самый верхний узел отображает все унаследованные функции, то есть сумма всех используемых пакетов.
+
=== Примеры для дополнений и перекрытий ===
 +
*Добавьте параметры компилятора к пакетам, не затрагивая lpk. Например, вы можете добавить проверку диапазона ''-Cr'' с помощью опции '''custom''' в разделе '''Targets: *'''.
 +
*Измените каталог вывода пакетов без затрагиванияя lpk. Например, путем добавления '''OutDir''' в поле '''Targets: *'''.
 +
*Определите макросы IDE только для некоторых пакетов или только для проекта. Например, скомпилируйте LCL с флагом '''-dQT_NATIVE_DIALOGS''', добавьте новую цель '''Targets: LCL''', а затем добавьте пользовательский параметр.
 +
*Добавьте параметры компилятора ко всем проектам с режимом сборки «debug», путем добавления параметров в группу хранения IDE.
 +
*Измените каталог вывода пакета(ов) для всех проектов с режимом сборки «релиз». Добавьте опцию сборки к опциям, хранящимся в IDE.
 +
*Объедините вышеперечисленное с сессиями, и вы сможете изменять сторонние проекты и пакеты, не касаясь их.
  
Узлы ниже показывают унаследованные параметры каждого пакета.
+
==== Изменение LCLWidgetType в версии 1.1 и выше ====
 +
Этот параметр доступен только тогда, когда проект использует пакет LCL
 +
 
 +
Перейдите в  Project(Проект) > Project Options(Параметры проекта) > Comiler Options(Параметры компилятора) > Additions and Overrides(Дополнения и перекрытия) > Set(Прсивоить) "LCLWidgetType".
 +
 
 +
[[File:SetLCLWidgetTypeIn1 7.png|bottom]]
 +
 
 +
==== Добавление флага в проект и все пакеты ====
 +
{{Note| Это изменяет проект (.lpi). Оно не изменяет файлы пакета (.lpk), но влияет на них при сборке проекта. Это также влияет на сборку IDE.}}
 +
 
 +
Перейдите к '''Additions and Overrides'''(Дополнениям и перекрытия). Нажмите кнопку '''Add'''(Добавить) и выберите '''Custom Option'''(Пользовательский параметр):
 +
 
 +
[[File:addflagtoprojectsandpackages1.png|bottom]]
 +
 
 +
Теперь вы должны увидеть "''Targets: *''"(Цель: *) и новую опцию ['''Custom''']. Она включена для текущего активного режима сборки и отключена для всех остальных. '''Targets: *'''(Цель: *) означает, что это относится к проекту и всем пакетам.
 +
 
 +
[[File:addflagtoprojectsandpackages2.png|bottom]]
 +
 
 +
Нажмите на ячейку [справа от] опции ['''Custom'''] и добавьте свой флаг. Например: '''-dSomeFlag'''.
 +
 
 +
[[File:addflagtoprojectsandpackages3.png|bottom]]
 +
 
 +
Вот так.
 +
 
 +
==== Добавление флага ко всем проектам и пакетам ====
 +
Флаг из предыдущего абзаца активен только при загрузке проекта. Чтобы установить флаг для всех проектов, выберите опцию и нажмите кнопку «вверх» (зеленая стрелка вверх). Это перемещает параметр в группу "Stored in IDE"(Хранящиеся в IDE).
 +
 
 +
[[File:addflagtoallprojectsandpackages1.png|bottom]]
 +
 
 +
{{Note| В среде IDE используются параметры режима сборки "default"(по умолчанию).}}
 +
 
 +
==== Изменение каталога вывода проекта и всех пакетов ====
 +
Перейдите к '''Additions and Overrides'''(Дополнения и перекрытия). Нажмите кнопку '''Add'''(Добавить) и выберите '''Output Directory (-FU)'''(Каталог вывода (-FU)).
 +
 
 +
[[File:AddsAndOverridesOutDir1.png|bottom]]
 +
 
 +
Теперь вы должны увидеть "''Targets: *''"(Цели: *) и новый параметр «OutDir» со значением по умолчанию '''lib/$(TargetCPU)-$(TargetOS)/$(BuildMode)'''. Он включен для текущего активного режима сборки и отключен для всех остальных. "''Targets: *''"(Цели: *) означает, что это относится к проекту и всем пакетам.
 +
 
 +
[[File:AddsAndOverridesOutDir2.png|bottom]]
 +
 
 +
Например: щелкните ячейку [справа от параметра ''OutDir''] и измените ее [значение] на '''lib/$(FPCVer)/$(TargetCPU)-$(TargetOS)'''. Это заставит IDE использовать разные каталоги вывода для каждой версии компилятора Free Pascal.
 +
 
 +
Если вы хотите использовать одни и те же выходные каталоги для всех ваших проектов, вы можете поместить опцию в [раздел] '''Stored in IDE'''(Хранящиееся в IDE). Щелкните в ячейке [справа от] параметра ''OutDir'', чтобы выбрать строку. Затем используйте кнопку «Вверх» (стрелка вверх), чтобы переместить параметр.
 +
 
 +
Если вы хотите применить каталог вывода для всех пакетов, но не для проектов, измените значение '''Targets'''(Цели) с ''*'' на ''*,-#project''.
 +
 
 +
[[File:AddsAndOverridesAllPkgOutDir1.png|bottom]]
 +
 
 +
{{Note| Если пакет не поддерживает ваш каталог вывода, добавьте к ''Targets''(Цели) значение '''-packagename'''. Например: '''*, - chmhelp'''.}}
 +
 
 +
Если вы хотите поместить выходные файлы пакета в подкаталоги проекта, измените ''OutDir'' на '''$(ProjPath)/lib/$(PkgName)/$(TargetCPU)-$(TargetOS)/$(BuildMode)'''. Обратите внимание на использование макросов ''$(ProjPath)'' для каталога проекта и''$(PkgName)'' для предоставления каждому пакету своего собственного каталога.
 +
 
 +
[[File:OutputDirectoryOFAllPackagesIntoProjectDirectory.png|bottom]]
 +
 
 +
Например, если каталог вашего проекта - ''C:\pascal\myapp'', то пакет LCL будет скомпилирован в ''C:\pascal\myapp\lib\LCL\i386-win32\default''.
 +
 
 +
==== Добавление флага в один пакет без изменения самого lpk ====
 +
В этих примерах опция ''-vm4104'' добавляется в пакет ''lazreport''.
 +
 
 +
*Перейдите в '''Additions and Overrides'''(Дополнения и перекрытия).
 +
*Нажмите на кнопку '''Add'''(Добавить) и выберите "New Target"(Новая цель). Вставляется новая строка с «Targets: *»(Цели: *)
 +
*Нажмите на новую строку сразу [справа от] "Targets:"(Цели:). '''*''' теперь становится редактируемым.
 +
*Измените [текущее значение] на имя пакета. В этом примере: ''lazreport''. Нажмите Enter или нажмите на другую строку, чтобы закончить редактирование.
 +
*При наведении указателя мыши на новую строку вы должны увидеть подсказку ''Apply to all packages matching the name "lazreport"''(Применить ко всем пакетам с именем «lazreport»).
 +
*Click on the '''Add''' button and select "Custom Option". A new row is inserted below the row ''Targets: lazreport''. Note: You can move rows using the green arrows
 +
*Нажмите кнопку '''Add'''(Добавить) и выберите "Custom Option"(Пользовательский параметр). Новая строка вставится ниже строки ''Targets: lazreport''(Цели: lazreport).
 +
{{Note| Строки можно перемещать с помощью зеленых стрелок.}}
 +
*Нажмите на новое пустое значение и измените его значение на '''-vm4104'''.
 +
 
 +
Эта опция сохранится в вашем текущем проекте (lpi) и добавится только, если вы скомпилируете этот проект. Если эта опция должна использоваться со всеми вашими проектами на вашем компьютере, используйте зеленые кнопки, чтобы переместить ''Targets: lazeport''(Цели: lazeport) в ''Stored in IDE''(Хранящиеся в IDE).
 +
 
 +
[[File:AdditionsAndOverridesOptionForSinglePkg1.png|bottom]]
  
 
== Компиляция (Compilation) ==
 
== Компиляция (Compilation) ==
 +
== Команды компилятора(Compiler Commands) ==
 +
[[image:CompilerOptions-Compiler_Commands.png]]
  
 
=== Создать Makefile (Create Makefile) ===
 
=== Создать Makefile (Create Makefile) ===
Line 294: Line 434:
  
 
Настройте здесь команду, которая будет выполнена после того, как закончится работа компилятора. Смотри выше  'Выполнить перед компиляцией (Execute before)' для дополнительной информации.
 
Настройте здесь команду, которая будет выполнена после того, как закончится работа компилятора. Смотри выше  'Выполнить перед компиляцией (Execute before)' для дополнительной информации.
 +
 +
Одним из удобных способов использования может быть автоматическое копирование кросс-скомпилированного исполняемого файла с вашего ПК на целевое устройство, например на Raspberry:
 +
scp "$TargetFile()" pi@raspberry:/home/pi/bin
 +
(И да, это работает даже без пароля, если вы создаете пару ключей с помощью ssh-keygen, а затем добавляете их в файл selected_keys вашей цели через "ssh-copy-id [remoteuser@]remotehost"; подробности см.[https: //www.debian.org/devel/passwordlessssh здесь])
 +
 +
== Унаследованный(Inherited) ==
 +
{{Note| Это было перенесено в Lazarus 1.1 в диалоговое окно '''Show Options'''(Показать параметры).}}
 +
 +
На этой странице показаны все параметры компилятора, унаследованные от пакетов. Пакеты наследуют опции через их свойство '''usage'''(использование) [[IDE_Window:_Package_Options/ru#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.28Usage.29|опций пакета]].
 +
 +
Самый верхний узел показывает все унаследованные параметры, то есть сумму всех используемых пакетов.
 +
 +
Узлы ниже показывают унаследованные параметры каждого используемого пакета.
 +
 +
Вы можете просмотреть/отредактировать набор используемых пакетов для проекта в Инспекторе проектов. Вы можете просмотреть/отредактировать набор используемых пакетов для пакета в редакторе пакетов.
 +
 +
Для получения информации о пакетах в целом см. [[Lazarus_Packages/ru|пакеты Lazarus]].
 +
 +
== Использовать эти настройки по умолчанию для новых проектов ==
 +
Установите этот флажок и нажмите Ok. Настройки будут сохранены в ''~/.lazarus/compileroptions.xml'' (или в любом другом месте, указанном в качестве основного пути конфигурации). При создании нового проекта этот файл будет загружен для инициализации параметров компилятора.
 +
Эта функция существует с 0.9.29.
  
 
== Кнопки (Buttons) ==
 
== Кнопки (Buttons) ==
Line 326: Line 487:
 
===Для [версий с] 0.9.29 по 1.0.x===
 
===Для [версий с] 0.9.29 по 1.0.x===
 
Эта страница позволяет определить макросы и условия вашего проекта/пакета. В среде IDE уже есть много [предопределенных]  [[IDE_Macros_in_paths_and_filenames/ru|макросов]]. Вы можете добавить свои собственные макросы, которые действительны при загрузке проекта/пакета.
 
Эта страница позволяет определить макросы и условия вашего проекта/пакета. В среде IDE уже есть много [предопределенных]  [[IDE_Macros_in_paths_and_filenames/ru|макросов]]. Вы можете добавить свои собственные макросы, которые действительны при загрузке проекта/пакета.
Условия позволяют устанавливать значения макросов в зависимости от целевой платформы и других макросов. Например, вы можете добавить опцию компоновщика при компиляции для Mac OS X.
+
Условия позволяют устанавливать значения макросов в зависимости от целевой платформы и других макросов. Например, вы можете добавить опцию компоновщика при компиляции для macOS.
  
 
Используйте левую кнопку '''+''', чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку '''+''', чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице '''build modes''' (меню IDE / Project / Project Options / Compiler options / Build Modes).
 
Используйте левую кнопку '''+''', чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку '''+''', чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице '''build modes''' (меню IDE / Project / Project Options / Compiler options / Build Modes).
Line 335: Line 496:
 
Для получения дополнительной информации о макросах сборки и условных выражениях см. [[Macros and Conditionals]].
 
Для получения дополнительной информации о макросах сборки и условных выражениях см. [[Macros and Conditionals]].
  
[[Image:Compileroptions buildmacros1.png|500px]]
+
[[Image:Compileroptions buildmacros1.png|none]]
  
 
Эта страница существует с версии 0.9.29.
 
Эта страница существует с версии 0.9.29.
Line 352: Line 513:
 
Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде
 
Обычно вы определяете здесь некоторые параметры компилятора. Например, вы можете определить в режиме сборки что-то вроде
  
<syntaxhighlight> -dRELEASE</syntaxhighlight>
+
<syntaxhighlight lang="pascal"> -dRELEASE</syntaxhighlight>
  
 
Затем в режиме сборки будет скомпилирован только код, окруженный  
 
Затем в режиме сборки будет скомпилирован только код, окруженный  
<syntaxhighlight>{$ IFDEF RELEASE}
+
<syntaxhighlight lang="pascal">{$ IFDEF RELEASE}
 
...
 
...
 
{$ ENDIF} </syntaxhighlight>
 
{$ ENDIF} </syntaxhighlight>
Line 368: Line 529:
 
Нажав кнопку '''All options...''' ("Все параметры ..."), вы можете легко настроить параметры FPC:
 
Нажав кнопку '''All options...''' ("Все параметры ..."), вы можете легко настроить параметры FPC:
  
[[File:options.png|500px|top]]
+
[[File:options.png|bottom]]

Latest revision as of 06:51, 22 December 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 или .p.
  • Если вы хотите использовать одни и те же модули между разными проектами, создайте пакет для них. Это просто.
Light bulb  Примечание: Не добавляйте каталоги использованный пакетов в этот путь. Это повлечёт за собой то, что 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 файлов (он передает это переключателю компилятора -FU). Если вы используете директиву $R для файлов lfm, она также скопирует туда файлы lfm.

Популярным примером использования является выходной каталог с именем units, а затем дополнительный подкаталог для целевого CPU и целевой OS. Например:

 units/$(TargetCPU)-$(TargetOS)

Примечание:

  • Если выходной каталог модуля пуст, Lazarus не 'передаст переключатель -FU компилятору. Затем компилятор будет использовать переключатель -FE. См.Project target file
  • Пакеты обычно наследуют свой выходной каталог другим пакетам с помощью параметров 'usage'. Вам не нужно добавлять пути к пакетам вручную в ваш проект.
  • Если выходной каталог пакета пуст, макрос $(PkgOutDir) также [будет пустым] и не будет наследоваться для нисходящих пакетов и проектов. Используйте точку ".", чтобы определить текущий каталог.

Имя целевого файла

Light bulb  Примечание: только проекты имеют это. Эта опция недоступна для пакетов.

Установите здесь имя файла сгенерированного исполняемого файла. Если файл является относительным, он будет расширен каталогом проекта (где находится файл .lpi). Если файл не указан, исполняемый файл помещается в выходной каталог модуля и имеет имя основного исходного файла (обычно файла .lpr) без расширения. Если расширение не указано, добавляется расширение по умолчанию для платформы (например, «.exe» для MS Windows, но не для других). Когда новый проект еще не был сохранен и собран, среда IDE сохраняет файлы в тестовом каталоге. Относительные файлы затем относятся к этому каталогу.

Lazarus передает переключатель компилятора

  • -o определяет имя целевого файла.
  • -FE если имя целевого файла отсутствует в каталоге проекта (где находится файл lpi)
  • -FU если выходной каталог устройства не пуст

Если имя целевого файла находится в другом каталоге (не в каталоге файла .lpi), Lazarus передаст компилятору ключ -FE, чтобы убедиться, что вторичные файлы, такие как .o и .rst помещаются в один и тот же каталог. Если вы очистили unit output directory(каталог вывода модуля), то среда IDE не передаст переключатель -FU, и компилятор сгенерирует файлы .ppu/.o для модулей тоже в целевом каталоге.

Если вы очистили unit output directory(каталог вывода модуля) и целевой файл проекта находится в каталоге проекта, то ни -FU ни -FE не передается компилятору, и компилятор будет работать с Delphi-совместимым файлом и генерировать файл «.ppu/.o» для каждого модуля в том же каталоге, что и модуль.

Применение конвенций

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

  • Windows: Если это программа, она добавляет расширение .exe; если это библиотека, к ней добавляется «.dll».
  • Unix (например, Linux, BSD, Darwin/macOS): если это библиотека, то имя в нижнем регистре, и если имя не начинается с 'lib', оно предшествует 'lib'.
  • Linux, BSD: Если это библиотека, то добавляется '.so'.
  • Darwin/macOS: Если это библиотека, то добавляется '.dylib'.

Examples

Каталог вывода модуля Имя целевого файла Сгенерированные варианты Примечание
lib/$(TargetCPU)-$(TargetOS) пустой -FElib\x86_64-win64 -olib\x86_64-win64\project1.exe все выходные файлы помещаются в lib\x86_64-win64\
lib foo -FUlib -FE. -ofoo.exe все выходные файлы модуля, такие как ppu и o, помещаются в lib\, выходные файлы программы помещаются в базовый каталог (где находится lpi)
lib foo/bar -FUlib -FEfoo -ofoo\bar.exe все выходные файлы модуля, такие как ppu и o, помещаются в lib\, выходные файлы программы помещаются в foo
пустой пустой -oproject1.exe файлы ppu помещаются в файлы .pas, например, src\unit1.pas создаст src\unit1.ppu
пустой foo -ofoo.exe файлы ppu помещаются в файлы .pas
пустой . (одна точка и применение соглашений отключены) файлы ppu помещаются в файлы .pas, выходной файл может быть любым, как определит по умолчанию компилятор

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

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

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

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

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

Настройка и целевая платформа (Config and Target)

CompilerOptions-Config and Target.png

Режимы сборки (Build modes)

Добавление, удаление, активация режимов сборки

Только проекты имеют режимы сборки. Пакет не имеет режимов сборки.

Режимы сборки позволяют определять sets of compiler options (наборы опций компилятора) и быстро переключаться между этими наборами. Например, вы можете определить mode (режим) для отладки, который компилирует ваш проект с проверкой диапазона, а ваш режим по умолчанию - нет.

Light bulb  Примечание: Если вы хотите передать некоторые параметры в зависимости от платформы, например, передать некоторые дополнительные параметры компоновщика в macOS, пожалуйста, посмотрите на макросы IDE.

Как добраться до этого диалога: Project(Проект) / Project Options(Настройки проекта) / Compiler Options (Настройки компилятора). Убедитесь, что "Build Modes" (Режимы сборки) включены.

EditProjectBuildModes.png

Нажмите кнопку «...» справа, чтобы добавить/удалить/переименовать режимы сборки:

ListOfBuildModes1.png

Сетка содержит список режимов сборки с тремя столбцами.

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

Если ваш проект хранит сеанс в отдельном файле lps (см. Project options(Параметры проекта) / Session(Сеанс работы) / Save session info in(Сохранять сведения о сеансе работы в)), вы можете сохранить дополнительные режимы в файле сеанса lps, чтобы у каждого разработчика был свой набор режимов. В этом случае второй столбец показывает, где хранится режим, в lpi или lps (в сеансе). Имейте в виду, что первый режим является режимом по умолчанию для проекта, поэтому он должен храниться в проекте, а не в файле сеанса.

Последний столбец - это название режима. Это произвольная строка, поэтому вы можете дать ей короткое имя или целое предложение.

  • Кнопка плюс добавляет новый режим, дублируя текущий активный и активируя его.
  • Кнопка минус удаляет текущий выбранный режим. Должен быть хотя бы один режим. Если вы удалите первый режим, который является режимом по умолчанию, второй режим автоматически становится режимом по умолчанию.
  • The up, down buttons allows to reorder the modes.
  • Кнопки вверх, вниз позволяют изменить порядок режимов.

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

Light bulb  Примечание: При открытии нового проекта со старой IDE (<0.9.31) вы увидите только режим по умолчанию. Если вы сохраните проект со старой IDE, вы потеряете все остальные режимы, все макросы и условия.

Опция «Режимы сборки» существует с версии 0.9.31.

Добавление режимов release(окончательный релиз) и debug(отладка)

Наиболее распространенной задачей для проектов будет добавление простых режимов сборки окончательного релиза(release) и отладки(debug). Не забывайте всегда использовать режим сборки debug(отладки), потому что отладка не будет работать в режиме сборки окончательного релиза, а затем использовать режим сборки окончательного релиза только в окончательной версии приложения.

  1. Перейдите к Project(Проект) / Project Options(Параметры проекта) / Compiler Options(Параметры компилятора)
  2. Включите "Build Modes"(Режимы сборки) вверху. Появится комбобокс для режимов сборки и кнопка редактирования.
  3. Нажмите на кнопку с надписью «...», чтобы открыть диалог режимов сборки.
  4. Нажмите на кнопку "Create Debug and Release modes"(Создать режимы отладочной и конечной сборки). Это добавит два режима сборки "Debug" and "Release".
  5. Закройте диалоговое окно

BuildModesAddedDebugAndRelease1.png

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

BuildModeSelectorInIDEToolBar1.png

После того, как мы выберем режим сборки Debug, все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию Debugging(Отладка) в режиме Debug:

BuildModeDebugPageDebugging.png

Когда мы выбираем режим сборки Release, все конфигурации в диалоге параметров проекта будут привязаны к этому режиму сборки. Вот страница по умолчанию Debugging(Отладка) в режиме Release:

BuildModeReleasePageDebugging.png

Выбор активного режима сборки

Можно выбрать активный в настоящий момент режим сборки либо в диалоговом окне "Project Options"(Параметры проекта), либо в главном окне IDE, в специальной кнопке с выпадающим списком, который появится только в том случае, если проект имеет более одного режима сборки, как можно увидеть на этом скриншоте:

Selecting Build Mode Main IDE Windows.png

Макросы проекта

См. здесь, чтобы добавить собственные макросы или переопределить макросы LCLWidgetType.

Обработка (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)

CompilerOptions-Compilation and Linking.png

Для настройки отладки см. Настройки проекта


Отладка(Debugging)

Compiler Options - Debugging

Вывод(сообщения) (Verbosity (Messages))

Compiler Options - Verbosity

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

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

Compiler Options - 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

Пользовательские параметры

CompilerOptions-Custom Options.png

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

-dRELEASE

Затем в режиме сборки будет скомпилирован только код, окруженный {$IFDEF RELEASE} {$ENDIF}. Это можно использовать в качестве альтернативы системе Macro, особенно если вы "переехали" с Delphi.

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

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

Warning-icon.png

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

Дополнения и перекрытия

Страница «Дополнения и перекрытия» существует с 1.1.

Обзор

Страница содержит матрицу вариантов сборки.

CompilerAdditionsAndOverrides1.png

Параметры «Пользовательские параметры», «Каталог вывода» и «Макросы IDE» в любой цели можно включать и выключать отдельно для каждого режима сборки.

Таким образом, для каждой цели есть Матрица с включающимися флажками.

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

Справа от каждой строки любой матрицы дается описание типа (например, «Пользовательский», «OutDir» или «Макрос IDE») и значение включаемой опции.

Типы вариантов сборки

Вариант сборки может

  • установить IDE macro(макрос IDE). Значение должно иметь вид MacroName:=Value. Например, LCLWidgetType:=qt. Вы можете использовать макросы IDE в значении, но не в имени.
  • добавить некоторые пользовательские параметры компилятора через Custom (например, добавить -O3). Вам не нужен ведущий пробел. Это добавляется автоматически. См. примечания по пользовательским параметрам.
  • переопределить выходной каталог (-FU) через OutDir. Обратите внимание, что при использовании относительного каталога, такого как lib/$(TargetOS), добавляется рабочий каталог цели, а не каталог проекта. Например, когда опция переопределяет выходной каталог пакета SynEdit, тогда выходной каталог synedit изменяется на <lazarusdir>/components/synedit/lib/$(TargetOS).

Вы можете создать новую опцию, нажав кнопку Add(Добавить) над матрицей. Вы можете изменить тип опции в любое время.

Включение параметров сборки в режимах сборки

Опция может быть включена с режимами сборки проекта. Вы можете включить опцию только в одном режиме сборки или нескольких из них. Каждая опция сборки имеет строку в матрице, каждый режим сборки имеет столбец в матрице. Каждая комбинация имеет флажок. Параметры сборки применяются сверху вниз.

Обратите внимание, что включение параметров в режимах сборки сеанса (хранящихся в .lps) не изменяет файл lpi. Эта информация хранится в файле lps. Вот почему эти чекбоксы имеют желтый фон.

Текущий активный режим и параметры сборки имеют зеленый фон.

Когда вы переименовываете режим сборки, также переносятся включенные состояния опций lpi и lps. Включенные состояния параметров IDE *не* переносятся. Например, когда опция IDE включена для режима debug и вы переименовываете режим в Test, тогда опция IDE все еще включена для режима debug для других проектов.

Место хранения настроек сборки

Настройка может быть сохранена в

  • проекте (.lpi)
  • сеансе работы проекта (.lps)
  • или в конфигурации IDE (environmentmentoptions.xml) - тогда он доступен для всех проектов

Параметры сборки применяются сверху вниз. Это означает, что сначала параметры сохраняются в IDE, затем параметры сохраняются в .lpi и, наконец, параметры сохраняются в сеансе работы.

С помощью кнопок «Вверх» и «Вниз» над матрицей вы можете перемещать параметры сборки и целевые объекты в другие группы хранения.

Light bulb  Примечание: Опция в конфигурации IDE для режима debug применяется кj всем проектам с этим режимом. Например, когда вы открываете сторонний проект с режимом сборки debug, опция будет применена и предупреждения не будет. Это может сломать проект.

Цели параметров сборки

Параметры сборки могут быть применены к проекту и/или к одному или нескольким пакетам. Вы можете ограничить область действия параметров сборки, чтобы они применялись только к определенным целям (проектам, пакетам). Параметры сборки сгруппированы по Targets(Целям). Targets(Цели) не чувствительны к регистру и допускают звездочку "*" для любого количества произвольных символов и знак вопроса "?" за один произвольный символ. Вы можете исключить цели, добавив минус "-". Чтобы отредактировать цель, нажмите позади 'Targets:'.

Примеры целей:

  • *: Звездочка "*" - значит подходит всем. Опция применяется к проекту и всем пакетам. Это по умолчанию.
  • LCL,Lazutils: Применимо только к пакетам "LCL" и "LazUtils"
  • *dsgn,-syneditdsgn: Применимо ко всем пакетам, оканчивающимся на "dsgn", исключая "syneditdsgn".
  • #project: Это соответствует самому проекту. Опция применяется только к проекту, а не к используемым пакетам.
  • #ide: Это соответствует IDE. Опция применяется только к IDE, а не к установленным пакетам.

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

targets project options.png

Цвета в матрице

  • Зеленый: текущий активный режим и опции
  • Желтый: сохраненные в сеансе работы без изменения lpi
  • Красный: ошибка синтаксиса

Примеры для дополнений и перекрытий

  • Добавьте параметры компилятора к пакетам, не затрагивая lpk. Например, вы можете добавить проверку диапазона -Cr с помощью опции custom в разделе Targets: *.
  • Измените каталог вывода пакетов без затрагиванияя lpk. Например, путем добавления OutDir в поле Targets: *.
  • Определите макросы IDE только для некоторых пакетов или только для проекта. Например, скомпилируйте LCL с флагом -dQT_NATIVE_DIALOGS, добавьте новую цель Targets: LCL, а затем добавьте пользовательский параметр.
  • Добавьте параметры компилятора ко всем проектам с режимом сборки «debug», путем добавления параметров в группу хранения IDE.
  • Измените каталог вывода пакета(ов) для всех проектов с режимом сборки «релиз». Добавьте опцию сборки к опциям, хранящимся в IDE.
  • Объедините вышеперечисленное с сессиями, и вы сможете изменять сторонние проекты и пакеты, не касаясь их.

Изменение LCLWidgetType в версии 1.1 и выше

Этот параметр доступен только тогда, когда проект использует пакет LCL

Перейдите в Project(Проект) > Project Options(Параметры проекта) > Comiler Options(Параметры компилятора) > Additions and Overrides(Дополнения и перекрытия) > Set(Прсивоить) "LCLWidgetType".

SetLCLWidgetTypeIn1 7.png

Добавление флага в проект и все пакеты

Light bulb  Примечание: Это изменяет проект (.lpi). Оно не изменяет файлы пакета (.lpk), но влияет на них при сборке проекта. Это также влияет на сборку IDE.

Перейдите к Additions and Overrides(Дополнениям и перекрытия). Нажмите кнопку Add(Добавить) и выберите Custom Option(Пользовательский параметр):

addflagtoprojectsandpackages1.png

Теперь вы должны увидеть "Targets: *"(Цель: *) и новую опцию [Custom]. Она включена для текущего активного режима сборки и отключена для всех остальных. Targets: *(Цель: *) означает, что это относится к проекту и всем пакетам.

addflagtoprojectsandpackages2.png

Нажмите на ячейку [справа от] опции [Custom] и добавьте свой флаг. Например: -dSomeFlag.

addflagtoprojectsandpackages3.png

Вот так.

Добавление флага ко всем проектам и пакетам

Флаг из предыдущего абзаца активен только при загрузке проекта. Чтобы установить флаг для всех проектов, выберите опцию и нажмите кнопку «вверх» (зеленая стрелка вверх). Это перемещает параметр в группу "Stored in IDE"(Хранящиеся в IDE).

addflagtoallprojectsandpackages1.png

Light bulb  Примечание: В среде IDE используются параметры режима сборки "default"(по умолчанию).

Изменение каталога вывода проекта и всех пакетов

Перейдите к Additions and Overrides(Дополнения и перекрытия). Нажмите кнопку Add(Добавить) и выберите Output Directory (-FU)(Каталог вывода (-FU)).

AddsAndOverridesOutDir1.png

Теперь вы должны увидеть "Targets: *"(Цели: *) и новый параметр «OutDir» со значением по умолчанию lib/$(TargetCPU)-$(TargetOS)/$(BuildMode). Он включен для текущего активного режима сборки и отключен для всех остальных. "Targets: *"(Цели: *) означает, что это относится к проекту и всем пакетам.

AddsAndOverridesOutDir2.png

Например: щелкните ячейку [справа от параметра OutDir] и измените ее [значение] на lib/$(FPCVer)/$(TargetCPU)-$(TargetOS). Это заставит IDE использовать разные каталоги вывода для каждой версии компилятора Free Pascal.

Если вы хотите использовать одни и те же выходные каталоги для всех ваших проектов, вы можете поместить опцию в [раздел] Stored in IDE(Хранящиееся в IDE). Щелкните в ячейке [справа от] параметра OutDir, чтобы выбрать строку. Затем используйте кнопку «Вверх» (стрелка вверх), чтобы переместить параметр.

Если вы хотите применить каталог вывода для всех пакетов, но не для проектов, измените значение Targets(Цели) с * на *,-#project.

AddsAndOverridesAllPkgOutDir1.png

Light bulb  Примечание: Если пакет не поддерживает ваш каталог вывода, добавьте к Targets(Цели) значение -packagename. Например: *, - chmhelp.

Если вы хотите поместить выходные файлы пакета в подкаталоги проекта, измените OutDir на $(ProjPath)/lib/$(PkgName)/$(TargetCPU)-$(TargetOS)/$(BuildMode). Обратите внимание на использование макросов $(ProjPath) для каталога проекта и$(PkgName) для предоставления каждому пакету своего собственного каталога.

OutputDirectoryOFAllPackagesIntoProjectDirectory.png

Например, если каталог вашего проекта - C:\pascal\myapp, то пакет LCL будет скомпилирован в C:\pascal\myapp\lib\LCL\i386-win32\default.

Добавление флага в один пакет без изменения самого lpk

В этих примерах опция -vm4104 добавляется в пакет lazreport.

  • Перейдите в Additions and Overrides(Дополнения и перекрытия).
  • Нажмите на кнопку Add(Добавить) и выберите "New Target"(Новая цель). Вставляется новая строка с «Targets: *»(Цели: *)
  • Нажмите на новую строку сразу [справа от] "Targets:"(Цели:). * теперь становится редактируемым.
  • Измените [текущее значение] на имя пакета. В этом примере: lazreport. Нажмите Enter или нажмите на другую строку, чтобы закончить редактирование.
  • При наведении указателя мыши на новую строку вы должны увидеть подсказку Apply to all packages matching the name "lazreport"(Применить ко всем пакетам с именем «lazreport»).
  • Click on the Add button and select "Custom Option". A new row is inserted below the row Targets: lazreport. Note: You can move rows using the green arrows
  • Нажмите кнопку Add(Добавить) и выберите "Custom Option"(Пользовательский параметр). Новая строка вставится ниже строки Targets: lazreport(Цели: lazreport).
Light bulb  Примечание: Строки можно перемещать с помощью зеленых стрелок.
  • Нажмите на новое пустое значение и измените его значение на -vm4104.

Эта опция сохранится в вашем текущем проекте (lpi) и добавится только, если вы скомпилируете этот проект. Если эта опция должна использоваться со всеми вашими проектами на вашем компьютере, используйте зеленые кнопки, чтобы переместить Targets: lazeport(Цели: lazeport) в Stored in IDE(Хранящиеся в IDE).

AdditionsAndOverridesOptionForSinglePkg1.png

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

Команды компилятора(Compiler Commands)

CompilerOptions-Compiler Commands.png

Создать 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)' для дополнительной информации.

Одним из удобных способов использования может быть автоматическое копирование кросс-скомпилированного исполняемого файла с вашего ПК на целевое устройство, например на Raspberry:

scp "$TargetFile()" pi@raspberry:/home/pi/bin

(И да, это работает даже без пароля, если вы создаете пару ключей с помощью ssh-keygen, а затем добавляете их в файл selected_keys вашей цели через "ssh-copy-id [remoteuser@]remotehost"; подробности см.[https: //www.debian.org/devel/passwordlessssh здесь])

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

Light bulb  Примечание: Это было перенесено в Lazarus 1.1 в диалоговое окно Show Options(Показать параметры).

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

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

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

Вы можете просмотреть/отредактировать набор используемых пакетов для проекта в Инспекторе проектов. Вы можете просмотреть/отредактировать набор используемых пакетов для пакета в редакторе пакетов.

Для получения информации о пакетах в целом см. пакеты Lazarus.

Использовать эти настройки по умолчанию для новых проектов

Установите этот флажок и нажмите Ok. Настройки будут сохранены в ~/.lazarus/compileroptions.xml (или в любом другом месте, указанном в качестве основного пути конфигурации). При создании нового проекта этот файл будет загружен для инициализации параметров компилятора. Эта функция существует с 0.9.29.

Кнопки (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 уже есть много [предопределенных] макросов. Вы можете добавить свои собственные макросы, которые действительны при загрузке проекта/пакета. Условия позволяют устанавливать значения макросов в зависимости от целевой платформы и других макросов. Например, вы можете добавить опцию компоновщика при компиляции для macOS.

Используйте левую кнопку +, чтобы добавить новый макрос для проекта/пакета. Выберите макрос и нажмите среднюю кнопку +, чтобы добавить новое возможное значение. Фактическое значение макроса задается в условных выражениях ниже или в текущем проекте на странице 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