所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用。不要把这个中间格式与. o/.obj/.a/.lib的格式混淆,他们是截然不同的,所以预编译头文件的特性和目标文件也不同(尽管他们都属于某种中间文件)。——但也有类似的地方的,比如,它们都是编译器之间不兼容的^_^,就是说你不能把VC生成的预编译头拿到GCC上去用。甚至扩展名都不一样,VC的是大家都熟悉的. pch,而GCC的,是.gch——今天的主角。
文章出处:http://www.diybl.com/course/3_program/c++/cppjs/20081013/150579.html