Как отличить Release от Debug
От: dosik Россия www.dosik.ru
Дата: 31.07.05 00:53
Оценка:
Пишу в MVS.NET. Встроенн ли в компилятор какой-нибудь макрос, который показыват какая именно идет компиляция (Release или Debug) для того, чтобы можно с помощью #ifndef или #ifdef не компилить то, что не нужно в debug версии.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re: Как отличить Release от Debug
От: Павел Кузнецов  
Дата: 31.07.05 01:38
Оценка:
dosik,

d> Пишу в MVS.NET. Встроенн ли в компилятор какой-нибудь макрос, который

d> показыват какая именно идет компиляция (Release или Debug) для того,
d> чтобы можно с помощью #ifndef или #ifdef не компилить то, что не нужно
d> в debug версии.

_DEBUG
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: Как отличить Release от Debug
От: MaximE Великобритания  
Дата: 31.07.05 08:44
Оценка:
On Sun, 31 Jul 2005 05:38:13 +0400, Павел Кузнецов"" <5834@users.rsdn.ru> wrote:

> dosik,

>
> d> Пишу в MVS.NET. Встроенн ли в компилятор какой-нибудь макрос, который
> d> показыват какая именно идет компиляция (Release или Debug) для того,
> d> чтобы можно с помощью #ifndef или #ifdef не компилить то, что не нужно
> d> в debug версии.
>
> _DEBUG

Если не ошибаюсь, это не встроенный макрос, а явно заданный в настройках проекта.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
Re[3]: Как отличить Release от Debug
От: adontz Грузия http://adontz.wordpress.com/
Дата: 31.07.05 12:39
Оценка: :))
Здравствуйте, MaximE, Вы писали:

ME>Если не ошибаюсь, это не встроенный макрос, а явно заданный в настройках проекта.


Да, но если не лазить руками куда не надо, он будет на месте
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Как отличить Release от Debug
От: Аноним  
Дата: 02.08.05 15:33
Оценка: +1
Здравствуйте, dosik, Вы писали:

D>Пишу в MVS.NET. Встроенн ли в компилятор какой-нибудь макрос, который показыват какая именно идет компиляция (Release или Debug) для того, чтобы можно с помощью #ifndef или #ifdef не компилить то, что не нужно в debug версии.


Сравнивая _DEBUG с NDEBUG, я бы порекомендовал NDEBUG использовать. Зачем на конкретную имплементацию C++ закладываться, если можно бесплатно что-то более стандартное получить?
Re[3]: Как отличить Release от Debug
От: Павел Кузнецов  
Дата: 03.08.05 12:30
Оценка: +1
MaximE,

>> _DEBUG


M> Если не ошибаюсь, это не встроенный макрос, а явно заданный в настройках проекта.


В настройках проекта задается NDEBUG. А _DEBUG как раз встроенный макрос (в VC++).

test.cpp
#include <stdio.h>

int main()
{
#ifdef _DEBUG
  printf("_DEBUG");
#else
  printf("no _DEBUG");
#endif
}


E:\pavel>cl test.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50725 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

test.cpp
Microsoft (R) Incremental Linker Version 8.00.50725
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:test.exe
test.obj

E:\pavel>test
no _DEBUG


E:\pavel>cl /MTd test.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50725 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

test.cpp
Microsoft (R) Incremental Linker Version 8.00.50725
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:test.exe
test.obj

E:\pavel>test
_DEBUG


http://msdn.microsoft.com/library/en-us/vclib/html/_crt__debug.asp

The compiler defines _DEBUG when you specify the /MTd or /Mdd option.

Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.