Можно ли что-то определить при построении в режиме отладки?Использование #define с режимом построения
Например:
...
#ifdef ENABLE_DEBUG
/* This line will be executed if the program is built in debug mode */
#endif
...
Можно ли что-то определить при построении в режиме отладки?Использование #define с режимом построения
Например:
...
#ifdef ENABLE_DEBUG
/* This line will be executed if the program is built in debug mode */
#endif
...
Это действительно возможно, потому что это вам, который определяет, что «режим отладки» означает. Не существует «стандартного» способа сделать это, потому что нет такого понятия, как «стандартный» режим отладки. Вы, как автор системы builds, контролируете все настройки. Если вы решите, что вы определяете макрос DEBUG
тогда и только тогда, когда вы строите в режиме отладки, вы можете, конечно, использовать #ifdef DEBUG
в своем коде, чтобы различать отладочные и не-отладочные сборки.
Ближайший «стандарт», что вы можете получить, что макрос assert
указан сделать его проверку, когда макрос NDEBUG
является не определено, и ничего не делать, когда NDEBUG
является определена. По этой причине IDE обычно настраивают конфигурацию сборки, чтобы отладочные сборки не определяли NDEBUG
и оптимизировали сборку.
Вы должны спросить себя, действительно ли вам нужна отдельная версия отладки. Разве вы не выпускаете то, что вы тестировали? Будет ли отладка не стать более важной, когда программное обеспечение уже выпущено? Вы хотите сделать отладку более сложной для выпущенного программного обеспечения? Должно ли выпущенное программное обеспечение не содержать много внутренних проверок здравомыслия, чтобы он не выполнял неправильный код? –