makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
在linux中输入vi Makefile 来实现创建Makefile文件
注意:命令行前必须加TAB键
例如:将两个文件led.c和crt0.S汇编文件,制作一个Makefile文件
1 1 led.bin : crt0.S led.c 2 2 arm-linux-gcc -c -o crt0.o crt0.c 3 3 arm-linux-gcc -c -o led.o led.c 4 4 arm-linux-ld -Ttext 0x00000000 -g crt0.o led.o -o led_elf 5 5 arm-linux-objcopy -O binary -S led_elf led.bin 6 6 arm-linux-objdump -D -m arm led_elf > led.dis 7 7 clean: 8 8 rm -f led_elf led.dis led.bin *.o
led.bin : crt0.S led.c 指的是依赖关系,led.bin是目标文件,:后面是依赖文件
arm-linux-gcc 编译选项
- -o 编译及链接,会生成一个exe可执行文件
- -Wall 指定产生全部的警告信息
- -O/-O2/-O3 数字越高,代表优化的更多,可以使生成的执行文件的提高执行效率
- -c 编译不链接,会生成一个*.obj文件,若后面加了-o,则表示指定输出文件名称
- -static 静态链接,生成的文件会非常大, 好处在于不需要动态链接库,也可以运行
- -S 只激活预处理和编译,就是指把文件编译成为汇编代码
例如:
arm-linux-gcc -c -o led.o led.c :编译不链接
arm-linux-gcc -o led led.c :编译以及链接
arm-linux-ld 连接选项
- -Ttext 0x00000000 指代码段头地址为0x00000000
- -T链接脚本 指使用链接脚本来进行更复杂的地址设置,包括了代码段,数据段,bss段等
- -o 后面指的将多个文件连接在一起,生成一个obj文件,上面的名称是led_elf。
- -pie 生成动态链接地址段,一般在新版uboot里会看到
arm-linux-objcopy 复制选项,支持格式转换
- -O binary 用来指定生成文件按照后面的格式来输出,其中binary是指生成二进制(.bin)文件。
- -S 不从源文件中复制重定位信息和符号信息到目标文件中去
arm-linux-objdump 反编译选项
- -D 反编译所有段
- -b binary 指定反编译目标文件格式
- -m ram 指定反编译目标文件所需的架构,这里是ram架构
转载于:https://www.cnblogs.com/lifexy/p/7065175.html
makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解相关推荐
- makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解【转】
转自:http://www.cnblogs.com/lifexy/p/7065175.html 在linux中输入vi Makefile 来实现创建Makefile文件 注意:命令行前必须加TAB键 ...
- arm-linux-gcc/ld/objcopy/objdump参数总结【转】
arm-linux-gcc/ld/objcopy/objdump参数总结 转自:http://blog.csdn.net/muyuyuzhong/article/details/7755291 arm ...
- Ubuntu12.4 64位 安装 arm linux gcc 4.3.2
一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...
- linux上安装Openssl步骤详解
linux上安装Openssl步骤详解 1,查看原有系统是否已安装Openssl openssl version -a 系统已经安装了openssl,我们先安装新的版本,然后将环境配置成最新的 ...
- Linux驱动开发必看详解神秘内核(完全转载)
Linux驱动开发必看详解神秘内核 完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html IT168 技术文档]在开始步入Lin ...
- Linux Jump Label/static-key机制详解
Linux Jump Label/static-key机制详解 RToax 2021年3 关于Linux Jump Label(x86)已经进行过概述,下面就static-key进行详述. 内核中有很 ...
- Linux iftop 安装与参数详解 【转】
文章来源:Linux iftop 安装与参数详解 文章参考:Linux流量监控工具 - iftop (最全面的iftop教程) 介绍 iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是 ...
- LINUX经常使用的命令详解
LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ...
- Ubuntu (Linux) 系统 find 命令详解
Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...
- 基于瑞芯微3399的嵌入式linux,瑞芯微x3399 linux QT平台WIFI移植详解
原标题:瑞芯微x3399 linux QT平台WIFI移植详解 第1章 内核配置 硬件平台:x3399开发板或ibox3399卡片电脑 操作系统:linux4.4.5+ QT5.6 WIFI型号:AP ...
最新文章
- c语言中比较两个数组函数,输入两个数组,调用large函数比较,计数,输出统计结果...
- java jar 版本号_java – 获取JAR文件版本号
- python处理数据的优势-python处理excel的优势是什么
- java 程序片段_20个非常有用的Java程序片段
- Linux每次开机都要source /etc/profile的解决方法
- P4559 [JSOI2018]列队 主席树
- php中define的参数_php中define的用法有哪些
- Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
- 我从Python新手到大师的百天之路(内附学习资源)
- PHP 实现微信公众号网页授权登录
- 硬盘属于计算机的主存吗,.硬盘装在主机箱内,因此硬盘属于主存对吗
- python视频补帧_AI 复原 100 年前的京城老视频,靠这三个开源工具
- java hl7_HL7中文完整版及代码实例
- 麦乐积分:积分兑换系统对于积分运营的重要性
- 合成全身火焰燃烧人物海报图片的PS教程
- 《SQL 入门教程》示例数据库
- Switch新机发布引全球吐槽
- 漫漫大学江湖录 - 爱与恨唯与工作更交织
- python蜂鸣器天空之城频率_如何把两个程序合在一起实现(小车超声波避障+蜂鸣器音乐《天空之城》)...
- Java中的Thread类
热门文章
- 一次没想好,第二次就要想到做好
- Ubuntu10.0.4下CyanogenMod编译环境的搭建和可刷机文件的编译及打包
- 控制台或者dll中CreateWindow 出错
- Oracle内账号密码过期the password has expired
- Thinking in Java 12.8.2 在return中使用finally
- 19. 镜像二叉树(C++版本)
- linux 多线程超时中断,c#中的线程超时
- 关于maven下载依赖失败问题
- html attr src,jQuery中css()和attr()方法的区别
- 重置系统_WIN10系统如何创建密码重置盘