передача определений препроцессору в командной строке
а есть ли возможность повлиять на препроцессорную обработку через командную строку. скажем передать какое - либо определение ?
ну скажем можно ли передать Deb из командной строки ???
#include "Iostream"
using namespace std;
#ifdef Deb
#define MYFUNC void f() {cout<<"YesD";}
#else
#define MYFUNC void f() {cout<<"NoD";}
#endif
MYFUNC
int main()
{
f();
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Конечно. Например, в Visual C++ для этого есть параметр командной строки /D.
Как указывают в комментариях, для GCC и Clang этот ключик - -D.
Для тех, кому все еще непонятно.
test.cpp
#include <iostream>
using namespace std;
#ifdef DEBUG
#define MYFUNC void f() {cout<<"YesD";}
#else
#define MYFUNC void f() {cout<<"NoD";}
#endif
MYFUNC
int main()
{
f();
}
Компиляция и запуск:
Командная строка Вывод при запуске test.exe
cl /EHs test.cpp NoD
cl /DDEBUG test.cpp YesD
Для особо неверующих :) -
