gpt4 book ai didi

c++ - 如何分两步运行 MSVC 预处理器和编译器?

转载 作者:可可西里 更新时间:2023-11-01 16:43:48 25 4
gpt4 key购买 nike

我想在不调用预处理器的情况下运行 Microsoft Visual Studio 编译器 cl.exe。这可能吗?我认为简单地编译预处理的源代码(使用 /c 标志)会使预处理器运行为空操作,但显然情况并非如此。我做了一些基准测试。这是一个小源文件 (main.cpp),其中仅包含一些代码:

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

以下是一些不同的编译器调用及其时间:

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

编译预处理后的源代码似乎已经快了一点(预处理程序不需要做任何事情)。然而,1 和 2 之间的差异表明实际的编译器和汇编器只需要多一点 0.5s。因此编译预处理后的源代码(如步骤 3 中所做的那样)比我希望的要慢一些。

有没有办法只运行编译器和汇编器,而不调用预处理器?我对 MSVC6 到 MSVC10 的解决方案很感兴趣。

最佳答案

据我所知,没有预处理器就无法运行编译器(不管它什么都不做。

然而,当您添加写入文件然后读回该文件时,将这 2 个阶段分开显然会更慢。如果它不需要执行这些写入,它可以将其保存在内存中,这样您就可以节省大量等待磁盘写入和读取的时间。

即即使您可以禁用预处理器,它仍然比同时运行两个阶段要慢。

关于c++ - 如何分两步运行 MSVC 预处理器和编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4757231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com