У меня есть ряд операторов отладки, определенных в программе, и я хочу иметь возможность сделать копию источника без этих утверждений.
Для этого я впервые рассмотрел аргумент командной строки GCC -E, в котором работает только препроцессор, однако это намного больше, чем я хотел, расширяя включенные файлы и добавляя операторы #line.
Например:
#include <stdio.h>
#ifdef DEBUG
#define debug( s ) puts ( s );
#else
#define debug( s )
#endif
int main( int argc, char* argv[] )
{
debug( "Foo" )
puts( "Hello, World!" );
return 0;
}
Я хочу, чтобы это было обработано:
#include <stdio.h>
int main( int argc, char* argv[] )
{
puts( "Hello, World!" );
return 0;
}
Тогда я мог бы убрать это с помощью чего-то вроде астиля, и никакой ручной работы не потребуется, чтобы получить именно то, что я хочу.
Есть ли какая-либо директива, которую я пропускаю для GCC или есть инструмент, способный это сделать?