Директивы компилятора, которые вы упоминаете, на самом деле являются ТА: директивами компилятора, а не директивами отладки.
Они относятся к процессу компиляции, ведь это совершенно отдельно от системы отладки.
Что вынужно сделать это:
- Если вы хотите отладить программу, определите символ DEBUG.Это НЕ скомпилирует блоки, которые существуют внутри тестов, и не будет выполняться в сеансе отладки.
- Если вы хотите освободить этот код, просто удалите DEBUG и все готово к отправке.
Вы путаете компиляцию и отладку и помещаете их в один и тот же контекст.
Они фактически находятся в совершенно разных контекстах.
Это может быть связано с тем, что вы компилируете и отлаживаете в одной системе графического интерфейса, но если вы компилируете программу, единственное, что ищет отладчик, - это точки останова.
Надеюсь, это поможет.
Редактировать : Вы можете определить это простым {$ DEFINE DEBUG} где-нибудь в верхней части вашей программы / модуля или используйте панель опций Lazarus, чтобы добавить ее в качестве параметра командной строки.
Чтобы завершить мой ответ.