Linux GNU 编译基础知识
来源:互联网 发布:淘宝密码找回密码页面 编辑:程序博客网 时间:2024/06/03 07:50
这里只简单介绍该命令的使用方法,详细资料可详读参考资料中的《嵌入式LINUX应用开发完全手册》第3章。
-c 对源文件进行预处理、编译、汇编,但不做链接,生成中间OBJ文件,通常以.o结尾。
-g 添加调试信息
-o 指定输出文件。如果不指定-o filename 选项,默认输出为a.out文件。
B. arm-linux-ld
-Ttext startaddr
-Tdada startaddr-Tbss startaddr
其中-T选项用来指定代码段、数据段、BSS段的起始地址。此外,还可以用来指定的链接脚本。
知识点:
可执行程序是由代码段、数据段、BSS段组成的。
数据段:存放的是初始化的全局变量和静态变量。
BSS段:存放的是未初始化的全局变量和静态变量。
C. arm-linux-objcopy
用于将一个目标文件复制到另一个文件内,可以使用不同于源文件的格式输出到目的文件。常用于格式转化。
-O 用于指定输出的文件格式。如二进制 –O binary
-I 用于指定源文件的格式
-S 不从源文件中复制重定位信息和符号信息到目标文件
D. arm-linux-objdump
用于显示二进制文件住处。常用于进行反汇编,方便调试。
-D 反汇编所有段
-m 指定反汇编目标文件所使用的架构,如 –m arm 指定为ARM体系架构。
-b 指定输入文件的格式,这不是必须的,arm-linux-objdump能自动识别多种格式。
Makefile
请大家参考《GNU makefile 手册》。
目标(target)……. : 信赖(prerequiries)…
<TAB>:命令(command)
这里需要注意的是命令前面一定要使用TAB键,不能用空格。请参照后面的实例进行学习,看手册不要看得太多,要边学边用,这样才会达到最好的效果。
- Linux GNU 编译基础知识
- 编译GNU/Linux共享库, 为什么要用PIC编译?
- 建立GNU/Linux ARM交叉编译工具链
- Linux x86 编译 Android 遭遇 gnu/stubs-64.h
- Linux x86 编译 Android 遭遇 gnu/stubs-64.h
- mips64el-unknown-linux-gnu-gcc交叉编译ELF-64程序
- mips64el-unknown-linux-gnu-gcc交叉编译ELF-64程序
- arm-vfp-linux-gnu交叉编译工具安装
- arm-vfp-linux-gnu交叉编译工具安…
- Linux/RedHat 编译安装GNU gcc 4.9.0 (g++)
- 编译与反编译GNU Linux语言文件方法
- Linux系统GCC程序编译,GNU程序调试
- Debian GNU/Linux 8.4 (jessie)编译安装php.md
- GNU/LINUX
- GNU/Linux
- GNU/Linux的GNU是什么意思
- Linux基础知识:内核编译-内核管理概述
- Linux内核模块的编译基础知识
- linux中cat命令;解压缩命令
- MFC连接ACCESS数据库心得
- Android启动
- SQL Server 2008 安装程序支持文件时中断
- ldap的配置
- Linux GNU 编译基础知识
- 标准C的标记化结构初始化语法
- oracle中sequence序列的使用
- Android开发之设置断点单步调试
- RoundcornerForm 圆角窗口
- java ee 面试题 总结
- dedeCMS安装
- Test class should have exactly one public constructor解决办法
- 引用类型和const类型的成员变量