C++ 如何在linux中编译c/cpp代码,从而在编译后提供预处理的汇编文件和对象文件?
如果源文件是source.cpp,那么编译器输出应该有source.i source.s 我的目录中的source.o不仅仅是.o文件 在哪里 预处理=source.i assembly=source.s object=source.o 我知道前两个文件正在创建中,但后来它们只被删除了 显示链接器可以链接对象文件,但我也想看到这两个文件C++ 如何在linux中编译c/cpp代码,从而在编译后提供预处理的汇编文件和对象文件?,c++,c,linux,C++,C,Linux,如果源文件是source.cpp,那么编译器输出应该有source.i source.s 我的目录中的source.o不仅仅是.o文件 在哪里 预处理=source.i assembly=source.s object=source.o 我知道前两个文件正在创建中,但后来它们只被删除了 显示链接器可以链接对象文件,但我也想看到这两个文件 对于linux,是否有任何标志或其他内容?根据gcc手册页 -节省时间 -保存temps=cwd 永久存储常用的临时中间文件;将它们放在当前目录中,并根据源文件
对于linux,是否有任何标志或其他内容?根据gcc手册页 -节省时间 -保存temps=cwd 永久存储常用的临时中间文件;将它们放在当前目录中,并根据源文件命名它们。因此,使用-c-save temp编译foo.c将生成文件foo.i和foo.s以及foo.o。这就产生了一个 预处理的foo.i输出文件,即使编译器现在通常使用集成的预处理器 所以你应该像这样编译你的代码
g++ -save-temps source.cpp
根据gcc手册页 -节省时间 -保存temps=cwd 永久存储常用的临时中间文件;将它们放在当前目录中,并根据源文件命名它们。因此,使用-c-save temp编译foo.c将生成文件foo.i和foo.s以及foo.o。这就产生了一个 预处理的foo.i输出文件,即使编译器现在通常使用集成的预处理器 所以你应该像这样编译你的代码
g++ -save-temps source.cpp
您可以为编译器的每个阶段创建单独的文件 预处理器: g++-E file.cpp-o file.i 翻译: g++-S file.i-o file.S 汇编程序: g++-c file.s-o file.o 链接器:
o-o文件您可以为编译器的每个阶段创建单独的文件 预处理器: g++-E file.cpp-o file.i 翻译: g++-S file.i-o file.S 汇编程序: g++-c file.s-o file.o 链接器:
g++file.o-o file执行简单的man gcc…并获取生成特定文件所需的开关,可能会更改生成文件以分解单阶段编译。执行简单的man gcc…并获取生成特定文件所需的开关,可能会更改生成文件以分解单阶段编译。