我想在不调用预处理器的情况下运行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.5s。因此,编译预处理的源代码(如步骤3中所做的那样)比我希望的要慢一些。
有没有办法只运行编译器和汇编程序,而无需调用预处理程序?我对MSVC6到MSVC10的解决方案感兴趣。
答案 0 :(得分:3)
据我所知,没有预处理器就无法运行编译器(无论它什么都不做。
然而,当您添加写入文件然后回读该文件时,分离2个阶段显然会更慢。如果它不需要进行那些写操作,它可以将其保存在内存中,并节省大量时间等待磁盘写入&amp;从中读取。
即使您可以禁用预处理器,它仍然会比同时运行两个阶段慢。
答案 1 :(得分:0)