cl.exe
, интерфейс командной строки к Microsoft Visual C++, имеет три различных вариантов для вывода предварительно обработанного файла (следовательно несоответствие в предыдущих ответах о Visual C++):
/E
: предварительно обрабатывают к stdout (подобный-E опции GCC) /P
: предварительно обрабатывают в файл /EP
: предварительно обрабатывают к stdout без #line директив , Если Вы хотите предварительно обработать в файл без #line директив, объединиться /P
и /EP
опции.
Большинство компиляторов имеет опцию просто выполнить препроцессор. , например, , gcc обеспечивает-E:
-E Stop after the preprocessing stage; do not run the compiler proper.
The output is in the form of preprocessed source code, which is sent
to the standard output.
, Таким образом, можно просто работать:
gcc -E foo.c
, Если Вы не можете найти такую опцию, можно также просто найти препроцессор C на машине. Это обычно называло cpp и вероятно уже находится в Вашем пути. Вызовите его как это:
cpp foo.c
, Если существуют заголовки, необходимо включать из других каталогов, можно передать-I/path/to/include/dir любому из них, как Вы были бы с регулярной компиляцией.
Для Windows, я предоставлю другим плакатам право предоставлять ответы, поскольку я не эксперт там.
Щелкните правой кнопкой по файлу на Проводнике Решения, goto Свойства. Под Свойствами Конфигурации-> C/C++> Препроцессор, "Генерируют Предварительно обработанный Файл", то, что Вы ищете. Тогда щелкните правой кнопкой по файлу в Проводнике Решения и выберите "Компиляцию". Предварительно обработанный файл создается в выходном каталоге (например, Выпуск, Отладка) с расширением.i (благодаря Коню для его комментария).
Обычно необходимо делать некоторую постобработку на выводе препроцессора, иначе все макросы просто расширяются до лайнеров, который трудно считать и отладить. Для кода C что-то как следующее было бы достаточно:
gcc -E code.c | sed '/^\#/d' | indent -st -i2 > code-x.c
Для кода C++, это на самом деле намного более твердо. Для GCC/g ++, я нашел этот сценарий Perl полезный.
Попробуйте cl /EP
при использовании компилятора C++ Microsoft.
В Visual Studio можно скомпилировать файл (или проект) с/P.