![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Условная компиляция [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