GCH文件】的更多相关文章

今晚学习友元函数的时候一点一点的在写一个头文件和一个源文件,中间g++ test.h了一下,无意中就生成了test.h.gch文件.后来修改了头文件的内容,但是不知道为什么一直各种出错,一番折腾之后才发现原来就是gch文件的原因,gch在编译器中不会因为修改了头文件去作更新修改,所以在每一次的编译时编译器都会去先查找头文件对应的gch文件,如果发现就直接调用gch文件,导致新修改的头文件并没有起作用.解决方法就是删除原先的gch文件了,或者别没事儿就g++你的头文件.. 简单说一下gch文件 概…
GCH文件是将H文件当作CPP进行编译之后出现的结果, 在头文件进行编译后就会在文件夹中看到一个 “文件名.h.gch” 的文件. 那么在再次对gch文件进行编译的时候就会将gch当作cpp一样对待. 这是一种预编译,这样可以提高编译的速度,但是gch文件并不会随着你对头文件的修改而修改, 所以在对头文件进行修改的时候,就会出现一些莫名其妙的错误,因为在再次编译的时候使用的是你之前预编译的中间文件gch文件. 所以这样就会出现错误了. gch即预编译头,将头文件预编译为二进制代码后后续编译使用.…
所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用.GCC编译头文件后的中间文件是*.gch. 如何将头文件编译为.gch文件呢?用g++编译,格式: g++ xxx.h 把.h文件当成.cpp文件一样来编译.如果需要控制编译细节,比如常量定义之类,可加上其它选项.运行之后,会在同个目录里生成一个名叫xxx.h.gch的文件. 注意在编译.gch的过程中,GCC并没有使用环境变量或 -I 选项来查找被编译的头文件,被编译的头文件必须在当前目录下.然而,被编译的头文件所…
一个学期没写博客了. 今天写OOP作业见鬼了, 调了半天. 我写了一个match.h和一个match.cpp, 然后match.cpp里面#include"match.h", 然后g++ match.cpp -o match.o -c 总是出问题 最后我发现把match.h和match.cpp 复制一份到fk.h, fk.cpp, f**k.cpp可以编译 然后在工作目录发现一个match.h.gch 然后把这个match.h.gch删了就好了 match.h.gch是头文件match…
paip.gch预编译头不生效的原因以及解决: 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax 现象: //////////// debug时候GCH生效..release时候不生效.. 要注意将太多类型包含到一个头文件中引入的额外的问题:编译后的程序文件会变大,因为不要的类型也会被链接到可执行文件中.对于一些客户端软件,应注意这个不良影响. 原因: //////////// 4…
参照:https://www.jianshu.com/p/0b2a7cb9a469 创建工作目录,包含一下文件 main.c person.c b.h c.h /*** c.h ***/ //this is c.h /*** b.h ***/ //this is b.h /*** main.c ***/ #include<stdio.h> //#include"a1.h" //#include"b.h" int main() { printf("…
今日重构之前的代码,修改了命名空间,然后一处派生的子类定义处总是总是报error: expected class-name before '{' token,网上查了查原因,出现这种情况大致有两种情况 1. 递归保护头文件: 2. 拷贝之前的代码,#ifndef XX #define XX; 我这次都不是.调了有两小时,然后不停的还原代码,最后发现是目录下面生成了一堆gch文件,删掉之后OK啦~…
本文为原创文章,转载请指明该文链接 Options Controling the kind of Output -x language 明确说明输入文件的编码语言,没有该选项的话, gcc 会根据输入文件的后缀来识别其编码语言,某个特定的 -x 选项仅对紧接其后 的且在下个 -x 选项之前的输入文件起作用,现在 -x 支持的语言有: c.c++.objective-c.objective-c++.assember.ada.f77. java,比如 gcc -S -x c main_return_…
1 建立comm.h 2 main.c中包含comm.h : #include "comm.h" 3 gcc -o comm.h.gch comm.h(低版本gcc会有bug) 4 gcc main.c 即可 还可以用-H选项查看实际用到的头文件:gcc -H main.c…
本文为原创文章,转载请指明该文链接 文件目录结构如下 dynamiclibapp.c Makefile comm/inc/apue.h comm/errorhandle.c dynamiclib/Makefile dynamiclib/dynamiclib_add.c dynamiclib/dynamiclib_mul.c dynamiclib/inc/dynamiclibs.h dynamiclib/libs/ 1. dynamiclib目录 dynamiclib/inc/dynamiclib…