gcc/arm-linux-gcc 浅析

原创 2015年07月07日 20:06:32
  1. 编译过程的理解
    • 预处理:针对预处理命令,例如#include,#define,#ifdef…#ednif。将相应的预处理命令执行,例如#include的包含,#define的替换等,将.c/.cpp文件转化为.i文件,生成的.i文件会比.c/.cpp文件大的多,主要是因为包含进大量的.h文件。
    • 编译:预处理之后的.i文件将用来做具体的编译,将.i文件转化为汇编.s文件。对于.s文件,我们可以通过汇编的语法了解程序内部的具体流程。特别的,由于.s文件相对于.i文件抛弃了大量的无用内容,所以.s文件会比.i文件小的多。同时。由于汇编语言相对于c/c++较为繁琐,所以.s文件会比.c/.cpp大一些。
    • 汇编:上一步生成的.s文件将会用来汇编成机器代码.o文件,同时也是可执行文件。自然,机器代码要比汇编语言更繁琐一些,相应的.o文件会比.s文件大一些。
    • 连接:在写程序的时候不可避免的会用到一些库文件,或是本身的源文件就由多个源文件组成,也就是说,汇编的过程将程序的各个有机部分编译成功,最后一步自然要将各个部分的.o文件结合库文件连接到一起,生成最终的可执行.o文件。
  2. gcc/cc/arm-linux-gcc的常用选项
    • -c: 编译不连接, .c/.cpp->.o
    • -S: 不汇编, .c/.cpp->.s
    • -E: 不编译, .c/.cpp->.i
    • -o file: 生成名为file的文件
    • -v: 显示配置命令
    • -Wall: 查看所有警告,特别是直接编译不会显示的一些警告
    • -g: 调试专用
    • -O: 优化
    • -llibrary: 连接名为liblibrary.a的库
    • -shared: 生成一个库文件
    • -Ldir: 假如链接的搜索路径
    • -Idir: 假如头文件搜索目录
    • -nostartfile: 不连接标准启动文件
    • -nostdlib: 不连接标准启动文件和标准库文件
  3. ld/arm-linux-ld常用选项
    • -T:指定程序或数据区的存放地址,例如-Ttext/-Tdata/-Tbss addr(16进制表示)
    • -T filename: 指定连接脚本
  4. objdump/arm-linux-objdump常用选项
    格式: arm-linux-objdump -D main.o > main.s
    • -d: 反汇编可执行段
    • -D: 反汇编所有段
版权声明:本文为博主原创文章,未经博主允许不得转载。

arm-linux-gcc-4.3.2交叉编译器

  • 2017年11月26日 17:57
  • 84.01MB
  • 下载

arm-linux-gcc-4.4.3.tar.gz

  • 2017年10月27日 21:06
  • 46.59MB
  • 下载

浅析Linux开发工具之gcc/g++

在windows开发平台,我们用惯了vc、vs等IDE(集成开发环境),在编译好源代码之后,按下相应按钮,IDE就会为我们完成编译,链接的过程。然后在Linux平台下,却没有这么方便的开发环境,很多事...

arm-linux-gcc-4.4.3.tar

  • 2017年09月30日 12:41
  • 40MB
  • 下载

arm-linux-gcc4.4.3安装

  • 2014年09月24日 16:19
  • 2KB
  • 下载

Ubuntu 16.04[64bit]嵌入式交叉编译环境arm-linux-gcc搭建过程图解

开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。    安装步骤 1、准备工具安装目录 将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录...
  • xie0812
  • xie0812
  • 2016年09月26日 18:12
  • 10221

gcc-linaro-arm-linux-gnueabihf 4.9

  • 2015年12月01日 16:54
  • 48.59MB
  • 下载

arm-linux-gcc-2.95.3

  • 2014年10月15日 16:06
  • 33.9MB
  • 下载

arm-linux-gcc 4.4.4交叉编译工具链的制作

前言 由于之前从来没有接触到Linux,经过一个月的学习(主要通过上网查阅相关的资料,到CSDN论坛上面去看),通过制作交叉工具链这一项任务,将Linux系统的基本指令,Linux不同内核的版本的文...

arm-linux-gcc交叉编译器 4.3.2 part2

  • 2014年10月13日 09:54
  • 41.07MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gcc/arm-linux-gcc 浅析
举报原因:
原因补充:

(最多只允许输入30个字)