gcc的作用】的更多相关文章

把代码编译成二进制文件 预处理----头文件,宏定义展开,条件编译 干掉注释代码 编译成汇编代码 生成目标代码.o (还不能执行) 链接(动态库)生成可执行程序 xxx.out 运行前,内存已经存在分区,执行时代码才载入内存 运行前内存分为(代码区-----只读,函数:data---初始化的数据,全局变量,静态变量(全局,局部),文字常量区(只读)bss---未初始化的数据,全局变量,静态变量) 运行时,加载上述内存分区,然后加载栈区(自动分配空间,自动释放)---自动管理内存 然后加载堆区--…
ccache的主页:http://ccache.samba.org distcc的主页:http://distcc.samba.org 1.背景: 在处理一些规模相对较大的工程时,编译花费的时间可能会很长.有时候我们会经常一遍一遍地编译相同的程序,此时,有了ccache情况就好多了.它将在第一遍编译时多花几秒钟,但接下来就会使编译成倍(5-10倍)的提速. ccache 的基本原理是通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了构建速度.…
前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o…
Autotest本身是一个自动化测试框架,可以在上面添加各种测试工具用于系统测试.前几天我在上面添加了几个基于龙芯桌面5.0系统的性能测试工具.现在做以下总结,大体写以下添加的过程. 以unixbench5为例,首先在client/tests目录下有一个文件夹:unixbench5,此文件夹有如下文件:[root@Autotest-server unixbench5]# lscontrol Makefile.patch UnixBench5.1.3.tgz unixbench5.py其中cont…
在netbeans里开发,有一个重要文件makefile,是用来编译所有的文件. 项目的目录结构如下,扁平的目录结构,如何实现自动化编译,写makefile呢? 第一版 基础版: CC = g++ CFLAGS = -O3 -DNDEBUG SOURCE =AdaBoost.cpp aodeselect.cpp sample.cpp vfan.cpp kdbext2.cpp tan_gen.cpp petal: ${SOURCE} $(CC) -o $@ ${SOURCE} $(CFLAGS)…
http://blog.csdn.net/shuimuniao/article/details/8017971 将流水线引入cpu,可以提高cpu的效率.更简单的说,让cpu可以预先取出下一条指令,可以提供cpu的效率.如下图所示: +-------------------------------- |取指令 | 执行指令 | 输出结果 +-------------------------------- |             | 取指令     | 执行 +----------------…
我的博客:www.while0.com -fomit-frame-pointer选项是发布产品时经常会用到的优化选项,它可以优化汇编函数中用edp协助获取堆栈中函数参数的部分,不使用edp,而是通过计算,全部使用esp来完成.看下边的例子就明白了: 把一下文件保存为test.c int b(int c){ int d = c; return 0; } 通过一下命令编译: gcc -o test.s -S test.c   不优化,编译为test.s gcc -o test1.s -S -fomi…
在makefile中经常会看到这些选项,gcc默认会在程序当前目录.path路径中查找所需要的材料 如何给gcc添加我们自己的原材料(头文件,库等) -I (注意是大写的i) 给gcc添加自定义的头文件的路径 例如:我的头文件目录是myinclude -Imyinclude -L 给gcc添加额外的搜索库的路径 例如 :有一个库A所在的路径是目录B -LB -l(小写的L) 给gcc 指定具体的库 例如:gcc需要一个库A -lA 整体举例: CC=g++ CFLAGS=-g BIN=main…
// a.h extern void foo(); // a.cpp #include <stdio.h> void foo() { printf("foo\n"); } // x.cpp #include "a.h" int main() { foo(); return 0; } // Makefile all: x x: x.cpp liba.so g++ -g -o $@ $^ liba.so: liba.a g++ -g -fPIC -share…
https://blog.csdn.net/shuimuniao/article/details/8017971 #define LIKELY(x) __builtin_expect(!!(x), 1) //x很可能为真 #define UNLIKELY(x) __builtin_expect(!!(x), 0) //x很可能为假 CurrentThread.h namespace CurrentThread { // internal extern __thread int t_cachedT…