2015-03-14 6 views
0

Можно ли что-то определить при построении в режиме отладки?Использование #define с режимом построения

Например:

... 
#ifdef ENABLE_DEBUG 
/* This line will be executed if the program is built in debug mode */ 
#endif 
... 
+0

Вы должны спросить себя, действительно ли вам нужна отдельная версия отладки. Разве вы не выпускаете то, что вы тестировали? Будет ли отладка не стать более важной, когда программное обеспечение уже выпущено? Вы хотите сделать отладку более сложной для выпущенного программного обеспечения? Должно ли выпущенное программное обеспечение не содержать много внутренних проверок здравомыслия, чтобы он не выполнял неправильный код? –

ответ

1

Это действительно возможно, потому что это вам, который определяет, что «режим отладки» означает. Не существует «стандартного» способа сделать это, потому что нет такого понятия, как «стандартный» режим отладки. Вы, как автор системы builds, контролируете все настройки. Если вы решите, что вы определяете макрос DEBUG тогда и только тогда, когда вы строите в режиме отладки, вы можете, конечно, использовать #ifdef DEBUG в своем коде, чтобы различать отладочные и не-отладочные сборки.

Ближайший «стандарт», что вы можете получить, что макрос assert указан сделать его проверку, когда макрос NDEBUG является не определено, и ничего не делать, когда NDEBUGявляется определена. По этой причине IDE обычно настраивают конфигурацию сборки, чтобы отладочные сборки не определяли NDEBUG и оптимизировали сборку.

Смежные вопросы