如果源文件是source.cpp,那么编译器输出应该在我的目录中有source.i source.s source.o,而不仅仅是.o文件.
哪里
- preprocessed = source.i
- assembly = source.s
- object = source.o
我知道前两个文件正在创建但后来他们只删除.o文件显示,以便链接器可以链接目标文件,但我也希望看到这两个文件.
对于linux任何标志或什么?
根据gcc手册页
-save-temps -save-temps = cwd永久存储通常的"临时"中间文件; 将它们放在当前目录中,并根据源文件命名它们.因此,使用-c -save-temps编译foo.c会生成文件foo.i和foo.s,以及foo.o. 这会创建一个预处理的foo.i输出文件,即使编译器现在通常使用集成的预处理器.
所以你应该像这样编译你的代码
g++ -save-temps source.cpp
Run Code Online (Sandbox Code Playgroud)