Как мне запустить препроцессор только на локальных заголовках?
Я хочу, чтобы препроцессор считывал включения локальных заголовков, но игнорировал включения системных заголовков. Другими словами, как заставить препроцессор пропустить директивы предварительной обработки вида:
#include new-line
но все же обрабатываем директивы вида:
#include "q-char-sequence" new-line
В качестве примера кода обратите внимание на следующий файл:
#include //system
#include "class_a.hpp" //local
#include //system
#include "class_b.hpp" //local
int main() {}
Как я могу получить выходные данные препроцессора, чтобы быть:
#include
class A{};
#include
class B{};
int main() {}
Локальные включаемые файлы могут включать другие локальные включаемые файлы, и препроцессор рекурсивно вводит их все; так же, как обычно. Он по-прежнему будет печатать все заголовки системных файлов, но не будет вводить их содержимое.
на gcc мой вызов пока выглядит так:g++ -E -P main.cpp
, где-E
останавливается после предварительной обработки и-P
исключает генерацию линейных маркеров.
Я могу'Кажется, не найден флаг, исключающий обработку системных заголовков.