Условная компиляция. Как сделать проще?

Вопросы программирования и использования среды Lazarus.

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

Ответить
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Условная компиляция. Как сделать проще?

Сообщение Ichthyander »

Условную компиляцию выполняю таким образом

Код: Выделить всё

unit UnitName;
{$mode objfpc}{$H+}
{$define debug}
... ... ... ...
... ... ... ...
... ... ... ...
 {$ifdef debug}
... ... ...
{$endif}

Это для отладочных сборок программы. Кроме того, хочу сделать такую же условную компиляцию для различных сборок индивидуальных версий программы (вот так, к примеру: {$define user1}). В случае, если нужно отключить переменную компилятора, то просто комментю - //{$define debug}
Но...
Не очень удобно, включать и выключать так переменную для каждого модуля в проекте. Можно ли как-то включать и выключать такую переменную сразу для всего проекта?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Можно, на страничке "другие" в диалоге параметров компилятора в "параметры пользователя" вписываешь что-то вида -ddebug -duser1, и оно применяется ко всем файлам проекта.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Ключ командной строки fpc -d[define].
В Lazarus можно добавить в настройках компилятора на вкладке Другое "параметры пользователя"
например

определит дефайн debug для всего проекта :wink:
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Спасибо! Я надеялся, что должно быть что-нибудь эдакое :)
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Можно в начале каждого файла проекта вставить чтонибудь типа {$INCLUDE def.inc}
и соотвктственно в файле def.inc определять всё что учодно для всего проекта
Ответить