Как запустить препроцессор и компилятор MSVC в два отдельных шага?

Я бы хотел запустить компилятор Microsoft Visual Studio cl. exe без вызова препроцессора. Это возможно? Я думал, что простая компиляция предварительно обработанного исходного кода (с использованием флага / c ) приведет к тому, что препроцессор не будет работать, но, видимо, это не так. Я провел небольшое тестирование. Вот небольшой исходный файл ( main.cpp ), который просто включает в себя некоторый код:

#include <iostream>
#include <string>
#include <windows.h>

Вот несколько различных вызовов компилятора и их время:

1: cl /c main.cpp                             ~1.02s
2: cl /EP main.cpp > main-preprocessed.cpp    ~0.5s
3: cl /c main-preprocessed.cpp                ~0.75s

Кажется, что компиляция предварительно обработанного исходного кода уже немного быстрее (препроцессору ничего не нужно делать). Однако разница между 1 и 2 предполагает, что фактическому компилятору и ассемблеру просто нужно немного больше 0,5 секунды. Таким образом, компиляция предварительно обработанного исходного кода (как это сделано на шаге 3) происходит немного медленнее, чем я ожидал.

Есть ли способ просто запустить компилятор и ассемблер, без вызова препроцессора? Меня интересуют решения для MSVC6 до MSVC10.

9
задан Brian Tompsett - 汤莱恩 19 June 2016 в 15:43
поделиться