Я бы хотел запустить компилятор 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.