`
ah_fu
  • 浏览: 223420 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

GCC:预编译头文件的尝试

阅读更多
    公司开发了一个自己的基础类库,有着庞大的头文件。为了便于使用并提高编译速度,尝试了一下GCC的预编译头文件的功能:

1、先定义头文件afl.h,内容如下:(afl意味a framework library)

#ifndef _AFL_H_
#define _AFL_H_

//from here to include all head files
#include <Log.h>
#include 
<DebugUtil.h>

#endif
2、预编译这个头文件:
g++ -o afl.h.gch -x c++-header -c afl.h -g -Wall -I"libpath..."
   使用-x c++-header来说明这个文件作为C++的预编译头文件。注意:C和C++的处理方式不一样,C要使用-x c-header选项。
3、经过上一步,alf.h.gch的这个预编译的头文件已经产生了。下面是代码中的引用方式:
//test.cpp
#include "alf.h"

int main()
...{
    LOG(
"test");
    
return 1;
}

    注意:所有的需要库的地方,都引用alf.h就可以了。
4、编译这个文件:
g++ -o test.o -c test.cpp -g -Wall
  呵呵,发现编译的时候相当快,而且不用指定库的头文件路径。


 
分享到:
评论

相关推荐

    Linux下gcc编译中关于头文件与库文件搜索路径相关问题.pdf

    Linux下gcc编译中关于头文件与库文件搜索路径相关问题.pdf

    VTK 静态库和头文件 Mingw gcc编译

    编译好的VTK静态库和头文件 为不想花时间编译的朋友提供方便

    gcc编译器(编译选项/过程)

    GCC编译选项 -E:仅作预处理,头文件、宏的处理 -S:仅编译到汇编语言,不汇编和链接 -c:编译、汇编到目标代码(计算机可识别的二进制),不链接标准库(或第三方库) -o:执行gcc后目标文件命名 -g:生成调试信息...

    32位的windows10下用tdm-gcc 5.1.0(32位)编译的wxwidgets3.1

    编译选项中有-shared-libstdc++,这就意味着你移植的时候要在tdm-gcc中把libstdc++的dll放在exe文件旁。 test2文件夹是测试用的 wxWidgets-3.1.0-headers\include 是头文件 wxWidgets-3.1_tdmgcc5.1_wudimei....

    gcc-pch-plugin:用于 GCC 的新版 PCH,作为插件编写

    这是 GCC 预编译头文件的实验性实现,编写为 GCC 插件。 这种方法比 GCC 本身提供的方法要好。 可以一次使用多个PCH文件,性能应该会更好,而且不是基于写出一个堆映像。建造您将需要一个非常新的 GCC 版本——一个...

    C语言中计算正弦的相关函数总结

    头文件:  #include &lt;math.h&gt; sin() 函数用来求给定值的正弦值,其原型为: double sin(double x); 【参数】给定的值(弧度)。 【返回值】返回-1 至1 之间的计算结果。 弧度与角度的关系为: 弧度 = ...

    compiler-gcc5.h

    编译android 内核3.4. x 时,提示找不到compiler-gcc5.h头文件。可将此文件下载放到内核include/linux文件夹下即可编译通过。如果再报错建议选择compiler-gcc6.h试试

    gcc使用的参数实例演示编译c程序过程

    用shell脚本写成的gcc简单使用。 其中涉及到5个文件:(1)6.sh为由一个菜单选择各种功能——可以演示编译c程序的过程以及静态与动态函数库的生成及使用。(2)endian.c为一个简单的C函数用于识别机器的内存大小端。...

    rexistum:一个x86平台的操作系统内核

    /include :存放头文件。 /init :内核入口点。 /kernel :系统内核代码。 /device :存放一些设备的驱动代码。 /doc :存放了操作系统开发文档。 /config :内核编译时的配置文件。二,编译与调试0x0编译环境make...

    UbuntuLinux下建立GCC环境

     在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面 我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv...

    mips交叉编译环境 共 5 部分 (4)

    因为这时还没有MIPS的glibc库可以使用,只能编译一个最简单的gcc,用这个gcc编译出glibc后就可以再编译一个完成的gcc了。 cd /usr/local/src/ tar xzvf gcc-3.0.2.tar.gz cd gcc-3.0.2/ ./configure --target=...

    mips交叉编译环境 共 5 部分 (1)

    因为这时还没有MIPS的glibc库可以使用,只能编译一个最简单的gcc,用这个gcc编译出glibc后就可以再编译一个完成的gcc了。 cd /usr/local/src/ tar xzvf gcc-3.0.2.tar.gz cd gcc-3.0.2/ ./configure --target=...

    mips交叉编译环境 共 5 部分 (2)

    因为这时还没有MIPS的glibc库可以使用,只能编译一个最简单的gcc,用这个gcc编译出glibc后就可以再编译一个完成的gcc了。 cd /usr/local/src/ tar xzvf gcc-3.0.2.tar.gz cd gcc-3.0.2/ ./configure --target=...

    自己编译的C++ 网络库 cpr 1.3.0 windows dll文件 gcc编译 x64

    自己编译的C++ 网络库 cpr 1.3.0 windows dll文件。压缩包内包含libcurl.dll和libcpr.dll和头文件,直接加到项目目录里面即可使用(动态链接)。Cpr是一个简单好用Http访问开源库,它是对Curl库进行第二次封装,所以...

    mips交叉编译环境 共 5 部分 (3)

    因为这时还没有MIPS的glibc库可以使用,只能编译一个最简单的gcc,用这个gcc编译出glibc后就可以再编译一个完成的gcc了。 cd /usr/local/src/ tar xzvf gcc-3.0.2.tar.gz cd gcc-3.0.2/ ./configure --target=...

    Eclipse添加C/C++头文件跳转

    Eclipse 中新建C 或C ++到项目时,头文件报警,显示“Unresolved inclusion:” 虽然不影响项目到编译和运行,确也无法查看头文件,让人感觉实在不爽。下面是在国外到网站上看到解决方案,自己整理了一下拿来分享一下...

    wxMSW-3.1.2_gcc510TDMGCC_x64_Dev

    使用方法:包含编译器相关头文件、wx头文件、指定__WXMSW__、_UNICODE、NDEBUG(发行版专用)、WSUSINGDLL(动态库专用)这几个宏,指定-finput-chaaset=GBK(系统的编码),指定链接库,使用TDMGCC编译GBK(系统...

    linux下开发,连接mysql数据库头文件和库文件(32位和64位)

    linux下开发,连接mysql数据库时候用到的头文件和库文件,32位和64位的都有,直接解压根据系统选择32位还是64位,把mysql_include和mysql_lib两个文件夹复制到主文件同级目录,然后makefile里面这样编译gcc -I./...

    GCC使用手册(和常用命令解释)

    GCC编译器完成从C、C++、objective-C等源文件向运行在特定CPU硬件上的目标代码的转换(这是任何一个编译器需要完成的任务)。 GCC能够处理的源文件分为C、C++、Objective-C、汇编语言等。对于这些源文件,用他们...

Global site tag (gtag.js) - Google Analytics