Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Условная компиляция [D7, WinXP]


Sphinx ©   (2005-09-15 12:32:00) 

в файле проекта объявлена директива:
{$DEFINE DEBUG}
а в юните:
{$IFDEF DEBUG}...{$ENDIF}
но этот код не компилируется до тех пор, пока я {$DEFINE DEBUG}не пропишу непосредственно в юните.
Как сделать, чтобы объявленная в проекте директива условной компиляции была видна во всех юнитах, используемых проектом.

P.S. влияет ли на видимость таких директив способ подключения юнитов:
uses
 Unit1,
 Unit2 in 'Unit2.pas';


Sphinx   (2005-09-16 13:48:00) [1]

2 PVOzerski ©
В который раз матерюсь на свою невнимательность :(
Для fpc искал -D и -Fd (по аналогии с -U и -Fu) а на -d не обратил внимания даже :(

Про полный билд...я просто занес все это в батники и при необходимости перекомпилирую или полностью (-B) или частично запуская разные файлы :)


PVOzerski   (2005-09-16 10:09:00) [2]

Тут вот какая прелесть происходит - компилятор без явной команды build (ppc386 -B <имя_файла> в случае FreePascal) уже откомпилированные модули не пересобирает (если не изменились файлы, на которые они ссылаются). Естественно, на последующее изменение директив условной компиляции реакции нет. Выходы вот какие:
1) (с) справка, выдаваемая компилятором по поводу ключика командной строки, подсказывает (чувствительно к регистру!):
-d<x>  defines the symbol <x>
2) сделать .inc-файл со всеми дефайнами и ссылаться на него из всех модулей.


Sphinx   (2005-09-15 21:01:00) [3]

Отлично...
А теперь тоже самое во FreePascal. :)

Для dcc32 это параметр -D<...>
а для FPC не нашел аналога...


Sphinx   (2005-09-15 12:42:00) [4]

Тормознул...Спасибо... ;)


Digitman   (2005-09-15 12:36:00) [5]

пропиши "DEBUG" в опциях проекта (поле ввода Conditional defines)


Reindeer Moss Eater   (2005-09-15 12:34:00) [6]

Project->Options->Directories/Conditionals


Наверх

Титульная страница Поиск, карта сайта Написать письмо