编译时,会先进行编译生obj文件,可是此时头文件不会编译到obj文件中去,我想问,自已做的头文件,在哪一步放到exe文件中去的呢?
书上说,先生成obj文件,然后与系统的类库进行链接生成exe,
可是生成obj文件的这一步,并不会包含我自已建的头文件,我想问,我自已建的头文件,在哪一步会进到exe文件中去的呢?
好象obj文件只是将对应的.cpp编译成obj文件,并不会将.h文件纳入呀!!

解决方案 »

  1.   

    我觉得 .h何时进到.exe文件是这样的:编译器在编译的时候,会区别函数、类的实现和原形, 编译的时候,会把实现生成.obj目标文件,
    然后,链接的时候,根据.h中的函数原型的位置(比如是自己的,还是外部引用的)取找到其他的.obj文件
    或者.lib文件(.obj文件的集合),进行链接。但是在.h文件中也可能存在代码和数据, 比如,有些人就愿意将简单的代码实现放在.h中函数定义的时候,所以,
    有可能编译的时候已经包括.h文件的内容了。.h如果包括程序使用到的数据定义,也会在编译的时候加入.obj文件的。所以,我觉得.h文件什么时候纳入是编译器跟据你的文件决定的,并不是说编译时肯定不纳入。
    不知道你明白了没有?