[国嵌笔记][012][GCC程序编译]

GCC特点

GCC(GUN C Compiler)是GUN推出的功能强大、性能优越的多平台编译器。其执行效率与一般编译器相比平均效率要高20%~30%。

GCC基本用法

gcc [options] filenames

GCC编译流程

hello.c->预编译->hello.i->编译->hello.s->汇编->hello.o->链接->hello

gcc -E hello.c -o hello.i   "-E"表示执行预处理 "-o"表示输出文件名

gcc -S hello.i -o hello.s   "-S"表示执行编译

gcc -c hello.s -o hello.o   "-c"表示执行汇编

gcc    hello.o -o hello         表示执行链接

常见的文件类型

.c :c文件

.h :头文件

.s :汇编文件

.o :目标文件

.C或 .cc或 .cxx: c++文件

.a :库文件

GCC编译选项

-o filename :指定输出文件名

-O :对编译程序优化,比如去除程序中没有用到的变量

  time ./filename   统计程序的运行时间

-O2 :对编译程序优化,程度比-O强

-c :不链接,生成.o文件

-g :产生具备可调试信息的程序,使用gdb调试时需要编译程序有该选项

-I :添加非标准头文件路径,gcc标准的寻找头文件路径/usr/include/

-Wall :生成所有警告

-w :不生成任何警告

-D(MACRO):定义(MACRO)宏,相当于在程序中使用#define (MACRO)

时间: 2024-08-03 03:49:28

[国嵌笔记][012][GCC程序编译]的相关文章

[国嵌笔记][008-009][远程登录Linux]

[国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面)协议远程登录 4.通过VNC(图形界面)协议远程登录 1.安装tigervnc.rpm 2.启动vnc服务:vncserver & [国嵌笔记][009][Windows与Linux文件互享] 1.windows与linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/ipt

000编程基础----GCC程序编译

GNU C Compiler 多平台编译器,是GNU的代表作之一. GCC编译器可以编译链接C\C++\汇编成可执行文件,可执行文件没特殊后缀,看属性. 预处理 编译 汇编 链接 Gcc通过后缀来区分不同类型文件 .c C语言源代码文件 .a库文件 由目标文件构成的库文件 .C .cc .cxx C++源代码文件 .h 头文件 .i 已经预处理过的C源代码文件 .ii 已经预处理过的C++源代码文件 .o 编译后的目标文件 .s 汇编语言源代码文件 .S 经过预编译的汇编语言源代码文件 预处理:

0-15 GCC程序编译

用法:    gcc [...] filenames 例如:    gcc hello.c 输出:    a.out 过程:    hello.c 预变异 hello.i 编译后 hello.s 汇编后 hello.o 链接后 hello 预编译:         gcc -E hello.c -o hello.i 编译  :         gcc -S hello.i -o hello.s 汇编  :         gcc -C hello.s -o hello.o 链接  :      

1.GCC程序编译

Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大,性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多个硬件平台上编译出可执行的程序,其执行效率与一般的编译器相比,效率要高20%~30%. GCC编译器能将C,C++语言源程序,汇编程序编译,链接成可以执行文件,在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件.使用GCC编译程序时,编译过程可以被细分为四个阶段: (1)预编译(Pre-Processing) (2)

[国嵌笔记][016][交叉工具链]

交叉工具链 1.交叉工具是编译在arm平台上运行程序的工具,交叉工具链是交叉工具的集合 2.file filename 通过file命令可以查看程序运行的平台等相关信息 3.交叉开发 1.在x86平台上产生其他平台上运行程序的模式叫做交叉开发 2.宿主机是产生嵌入式软件的平台,目标机是运行嵌入式软件的平台 常用的交叉工具 1.交叉编译器 arm-linux-gcc 相同之处 arm-linux-gcc file.c -o file 与gcc用法上一样 不同之处 gcc从 /usr/include

[国嵌笔记][030][U-Boot工作流程分析]

uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件.uboot的链接都是由这个链接器脚本来控制的 3.打开u-boot.lds文件,找到.text(代码段)的第一个文件cup/s3c24xx/start.o,该文件就是uboot的入口代码.链接器脚本中的ENTRY用来表明整个程序的入口,那么标号_start就是整个

[国嵌笔记][017][Makefile工程管理]

Makefile的用途 1.make能够使整个程序的编译.链接只需一个命令就可以完成 2.make的工作主要依赖于Makefile的文件.Makefile文件描述了整个程序的编译.链接等规则,使之自动完成. Makefile的构成 1.规则 targets(目标):prerequisties(依赖) command(命令) 注意:command前面是[tab]而不是空格,否则执行会出错 1.伪目标:只有目标和命令,没有依赖的规则称为伪目标,伪目标通常用 .PHONY:targets (也可以不写

[国嵌笔记][019][Eclipse集成开发环境]

Eclipse集成开发环境的作用 可以编译程序,也可以对程序进行在线调试 集成开发环境 1.JLink连接开发板的JTAG 2.JLink连接PC的USB 3.eclipse软件 4.gdb server软件 5.JLink软件 安装步骤 1.格式化nand flash 2.连接JLink,并设置从nand flash启动 3.安装gdb server软件 1.tar zxvf linux-gdb-7.5.tar.gz 2.执行./build-all,编译gdb server软件,然后安装软件

[国嵌笔记][024][ARM汇编编程概述]

汇编程序用途 1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序 2.在对访问效率要求很高的情况下,需要用到汇编程序 ARM汇编分类 1.ARM标准汇编:适合于Windows在平台下使用 2.GUN汇编:适合于Linux在平台下使用 汇编程序框架 完整版: .section .data 数据段 <初始化数据> .section bss bss段 <未初始化数据> .section .text 代码段 .global _start 通过global申