Я полагаю, вы используете gcc.
Если вы имеете в виду все #include
s, я думаю, вам нужно удалить их, разверните полученный файл с помощью gcc -E
, затем добавьте #includes
s обратно.
Если вы имеете в виду только стандартные заголовки, опция -nostdinc
может помочь вам сделать то, что вы хотите
user@host:~/test/tmp$ cat 4437465.c
#include <stdio.h>
#ifndef OUTPUT_TYPE
#define OUTPUT_TYPE 1
#endif
int main(void) {
#if OUTPUT_TYPE == 1
printf("output type 1\n");
#elif OUTPUT_TYPE == 2
printf("output type 2\n");
#else
printf("default output type\n");
#endif
return 0;
}
user@host:~/test/tmp$ gcc -DOUTPUT_TYPE=2 -nostdinc -E 4437465.c
# 1 "4437465.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "4437465.c"
4437465.c:1:19: error: no include path in which to search for stdio.h
int main(void) {
printf("output type 2\n");
return 0;
}