【问题标题】:Can I squeeze my own program between the preprocessor and compiler?我可以在预处理器和编译器之间压缩我自己的程序吗?
【发布时间】:2011-05-02 06:53:34
【问题描述】:

这是一个愚蠢的问题,还是我可以指定 g++ 在预处理器和编译器之间使用程序?

或者,我知道我可以只对文件运行预处理器(因此是所有文件)。然后我猜有一个只运行编译器的开关。所以我可以手动调用这两个并将我的程序放在两者之间。如果是这样,我如何只运行编译器(和链接器?)?

我更喜欢第一种方法,因为我们的建筑商可能不同意我的观点:)。

【问题讨论】:

  • 即使您在编译器中找不到跳过预处理的选项,您也始终可以在整个过程中运行预处理后的代码。预处理器将根本无事可做。

标签: c++ linux compiler-construction g++ c-preprocessor


【解决方案1】:

要运行备用预处理器,man page 建议使用-no-integrated-cpp-B

我没有这方面的经验,所以我建议你阅读the man page中的相关部分。


或者,您可以通过告诉 g++ 该语言是“预处理 C++”来运行编译器而不调用预处理器:

g++ -x c++-cpp-output

g++ 也会将后缀为 .ii 的文件识别为经过预处理的 C++,因此管道变为:

source.cpp -> source.ii: g++ -o source.ii -E source.cpp
source.ii -> source.custom.ii: <custom step>
source.custom.ii -> source.o: g++ -o source.o -c source.custom.ii
source.o -> source: g++ -o source source.o

【讨论】:

    【解决方案2】:

    查看 -Xpreprocessor 选项,这允许您定义新的预处理器解释

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2015-08-05
      • 1970-01-01
      • 2011-11-03
      相关资源
      最近更新 更多