一个c++的源程序编译、汇编、链接成.exe文件的过程中涉及到那些货色

一个c++的源程序编译、汇编、链接成.exe文件的过程中涉及到那些东西?
        这个问题应该是涉及到计算机原理的吧,因为时间紧张也没有去查相关书,先来问一下大神们吧。。
       我现在知道,源程序文件,通过编译、汇编可生成.obj目标文件,然后经过链接可生成.exe可执行文件,然后就可以运行了。中间可以通过预编译生成.i文件,通过汇编生成.s文件。。请问在这个过程中还会生成什么文件?例如符号表,或有关寄存器、存储器之类的东西?    或者说与调试有关的文件是哪些?
             PS:我在用GCC(MinGW)来进行编译,有没有命令可以将这些有关的中间项全部生成出来?比方说,我现在从.cpp文件生成.exe文件,其实一个-o命令就可以了,但中间是不是涉及到其他东西了?怎么将这些东西也生成?
------解决方案--------------------
直接运行

gcc --help

内容很短,也很清楚
------解决方案--------------------
<程序员的自我修养>这本书写得很全面。****有下载电子版。自己好好看吧。
------解决方案--------------------
引用:
<程序员的自我修养>这本书写得很全面。****有下载电子版。自己好好看吧。


恩,不过看他的意思就是想找 GCC的 -E/-c 等几个常规参数,使得编译中的各个步骤分开运行
------解决方案--------------------
cc(driver):cpp(预处理)-> c0(编译第一个阶段)->c1(编译第二阶段,输出汇编)-->c3(编译第三阶段, 可选,输出汇编)-> as(汇编, 输出obj)->ld(链接obj,库文件)-->exe
------解决方案--------------------
引用:
Quote: 引用:

<程序员的自我修养>这本书写得很全面。****有下载电子版。自己好好看吧。
    我大概看了一下,里面有一章讲了目标文件里有些什么。。。GCC里面有没有命令可以将中间过程生成的文件都列出来?不是指的.i,.s,.o,.exe这些,而是更详细的东西,比方说变量值,或与调试有关的符号表之类的


看下这二个贴子:
http://blog.****.net/qwerty_xk/article/details/11926713
http://www.cppblog.com/elprup/archive/2010/05/13/115283.aspx

用g++ 的-g选项,会把调试信息加入到可执行文件中。然后再用gdb来调试,用gdb的list命名就可以看到对应的代码了。