`
ah_fu
  • 浏览: 229574 次
  • 性别: 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
  呵呵,发现编译的时候相当快,而且不用指定库的头文件路径。


 
分享到:
评论

相关推荐

    GCC的默认头文件路径和库文件

    通过合理设置上述环境变量,开发者可以在GCC编译过程中更加灵活地管理头文件和库文件的搜索路径,从而提高编译效率和项目的可维护性。同时,这些环境变量也为GCC提供了更丰富的国际化支持能力。理解并掌握这些环境...

    C++中的万能头文件.md

    因此,开发者在使用预编译头文件时要特别小心,需要根据项目的特点以及团队的使用习惯来决定是否采用预编译头文件。 在某些情况下,为了方便地包含所有的标准库头文件,开发者可能会使用`#include&lt;bits/stdc++.h&gt;`...

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

    Linux 下 gcc 编译中的头文件与库文件搜索路径相关问题 Linux 下的 gcc 编译中,头文件和库文件的搜索路径是编译器在编译过程中查找头文件和库文件的路径。编译器会在指定的目录中查找头文件和库文件,如果没有找到...

    每天学点C++(C++实例教程:教程+源码)预编译头.zip

    预编译头文件通常包含常用的、不经常改变的头文件,如标准库头文件,使得这些内容只需要编译一次,之后的编译过程可以直接复用已编译的结果,从而节省编译时间。 预编译头的工作原理是这样的:当创建一个预编译...

    gcc、gcc+编译离线文件

    在使用GCC编译C++程序时,我们通常需要指定`-c`选项来编译为对象文件,`-o`选项来指定输出文件名,以及`-g`选项来包含调试信息。例如: ```bash gcc -c main.cpp -o main.o -g ``` 然后,用`-l`选项链接所需的库,...

    用GCC 编译环境所需要的软件包环境配置和安装

    ### 使用GCC编译环境所需的软件包环境配置与安装 #### 概述 GCC(GNU Compiler Collection)是一套由自由软件基金会发布的编译器集合,它支持多种编程语言,包括C、C++、Objective-C等,并且是开源免费的。本文档...

    gcc编译数据库1

    下面将详细解析GCC编译数据库的相关知识点。 ### GCC编译器简介 GCC(GNU Compiler Collection)是一套由自由软件基金会发布的开源编译器集合,支持多种编程语言,如C、C++、Objective-C等。GCC不仅适用于Linux...

    linux下GCC编译C程序

    【GCC编译C程序】是Linux环境中开发C语言软件的核心环节。GNU编译器集(GCC),最初称为GNU C编译器,由Richard Stallman在1987年发起,旨在构建符合自由软件理念的编译器,用于构建GNU项目中的其他软件。GCC很快因...

    mingw64编译i器,gcc,g++编译,tmd64-gcc4.9.2

    TDM-GCC是由TDM项目提供的一个预编译的MingW64版本,它包含了GCC的稳定版本4.9.2。这个版本在当时是一个流行的选项,因为它提供了比标准MingW更稳定的构建和更好的性能。 MingW64与GCC: - GCC(GNU Compiler ...

    GCC的编译流程

    预处理是GCC编译过程中最初始的阶段。在这个阶段,GCC会处理以`#`字符开头的预处理器指令。预处理器的主要任务包括: - **宏替换**:对宏进行展开,例如`#define`定义的宏会被相应的文本替换。 - **文件包含**:...

    《GCC编译流程:从源代码到可执行程序——浅析编译原理》—— 程序的基本编译流程.pdf

    GCC编译流程:从源代码到可执行程序——浅析编译原理 GCC编译流程是从源代码到可执行程序的整个过程,可以分为四个阶段:预处理、编译、汇编和链接。下面将对这些阶段进行详细介绍: 1. 预处理阶段: 在预处理...

    LINUX下的GCC编译指南

    * -Idirname:将 dirname 所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。 头文件包含 在 C 程序中,头文件包含有两种情况: * A) #include * B) #include “myinc.h” 其中,A 类使用...

    nordic52832 nordic使用gcc编译环境搭建资料合集20220506 085836

    标题 "nordic52832 nordic使用gcc编译环境搭建资料合集20220506 085836" 涉及的是为Nordic 52832微控制器搭建基于GCC的编译环境。Nordic 52832是一款低功耗蓝牙(Bluetooth Low Energy, BLE)SoC,广泛用于物联网...

    linux中gcc4.8.5,下载解压即可直接使用,linux系统GCC编译

    1. **预处理**:GCC会处理宏定义、条件编译指令,并将#include的头文件内容插入到源代码中。 2. **编译**:将预处理后的源代码转换为中间汇编语言。 3. **汇编**:将中间汇编语言转换为目标机器的机器码。 4. **链接...

    arm linux 交叉编译工具gcc-4.8.3

    **交叉编译工具GCC-4.8.3详解** 在嵌入式系统开发领域,特别是针对ARM架构的Linux系统,交叉编译是一个不可或缺的概念。交叉编译是指在一种平台上生成另一种平台上的可执行代码的过程。这里提到的"arm-linux-gcc-...

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

    在本文中,我们将深入探讨如何在 Mingw GCC 编译环境中构建 VTK 的静态库和头文件。 首先,VTK 的静态库与动态库相比,具有不依赖运行时库的优势,适合于开发独立的、便携的应用程序。Mingw GCC 是一个适用于 ...

Global site tag (gtag.js) - Google Analytics