我可以将自己的程序挤在预处理器和编译器之间吗?

问题描述 投票:0回答:2

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

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

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

c++ linux g++ c-preprocessor
2个回答
2
投票

要运行替代预处理器,手册页建议使用

-no-integrated-cpp
-B

我对这些没有经验,所以我建议你阅读手册页中的相关部分。


或者,您可以通过告诉 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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.