- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux程序编译调试介绍
嵌入式 Linux 工程开发实践
2.2.4 GCC 应用举例
GUN 编译器集合(GCC )是一个“免费”的C/C++工具链,它有力地支持了 Linux 系
统的发展,由于它被看作许多嵌入式处理器的一个交叉编译器,所以在嵌入式应用程序开发
中是一个非常流行的交叉编译工具,它包括 C/C++交叉编译器 arm-elf-gcc、汇编器 arm-elf-as、
连接器 arm-elf-ld、库管理器 arm-elf-ar、工程管理器make 、调试工具 gdb 和其他一些实用程
序。它的基本功能包括如下几点:
1.输出预处理后的 C/C++源程序;
2 .输出 C/C++源程序的汇编代码;
3 .输出二进制目标文件;
4 .生成静态库;
5 .生成可执行程序;
6 .转换文件格式。
在这里我们还要理清 Linux 软件开发中的一些基本概念。
● 编辑器与编译器的概念:编辑器是输入程序代码的裁体。Linux 提供了几款编辑器,
如 vi (VIM ),还有KDevelop 等。而编译器则是将源程序转换成机器可识别的二进
制代码的工具。
● 交叉编译器的基本概念:交叉编译器本身是运行在 host (宿主机)上,而交叉编译器
所生成的代码则运行在 target (目标机)上。
● Linux 操作系统之上编程与操作系统之下编程的区别:在 Linux 操作系统之上编程,
例如,有一个 C 语言写的源文件 hello.c ,要对它进行编译,可用 gcc 编译器,命令行
如下:
# gcc –o hello.o hello.c
其中 gcc 是 Linux 编译器的名字,-o 选项指定输出文件名。原代码和系统编译执行输出
过程如图 2.12 所示。
图2.12 Gcc 编译原代码过程示意
2.2.5 GDB 使用简介
Linux 包含了一个叫 GDB 的 GNU 调试程序,GDB 是一个用来调试 C/C++程序的强力
调试器,它使你能在程序运行时观察程序的内部结构和内存的使用情况,它可完成如下一些
调试任务:
29
第 2 章 Linux 系统应用程序开发
● 设置断点;
● 监视程序变量的值;
● 单步执行程序;
● 修改变量的值。
在使用 GDB 调试程序之前,必须在用 GCC 编译源文件时加上-g 选项。可在 Makefile
文件中定义 CFLAGS 变量:CFLAGS= -g
gdb 程序调试的对象是可执行文件,而不是程序的源代码文件。然而,并不是所有的可
执行文件都可以用 gdb 调试。如果要让产生的可执行文件可以用来调试,需在执行 gcc 命令
编译程序时,加上-g 参数,指定程序在编译时包含调试信息。调试信息包含程序里的每个
变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb 利用这些信息使源代码和
机器码相关联。在命令行上输入 gdb 并按回车键就可以运行 gdb 了,如果一切正常的话,将
启动 gdb,可以在屏幕上看到以下的内容:
图2.13 gdb 运行界面
启动 gdb 后,可以在命令行上指定很多的选项。输入:help 可以获得 gdb 的帮助信息。
如果想要了解某个具体命令(比如 break )的帮助信息,在 gdb 提示符下输入下面的命令:
Break ,屏幕上会显示关于break 的帮助信息。从返回的信息可知,break 是用于设置断
点的命令。
gdb 支持很多的命令且能实现不同的功能。这些命令从简单的文件装入到允许你检查所
调用的堆栈内容的复杂命令, 下面列出了在使用 gdb 调试时会用到的一些命令。常见 GDB
命令列于下面:
file FILE : 装载指定的可执行文件进行调试;
break NUM :在指定的行上设置断点,NUM 为行号;
Tbreak : 设置临时断点。它的语法与 break
您可能关注的文档
- Ernst Mach (1838–.pdf
- est2010一般论文格式_整1_1107_final.pdf
- E时代人力资源管理的角色定位.pdf
- GMAT管卫东Math-第23套-智课网.pdf
- GMAT管卫东Math-第01套-智课网.pdf
- GRE填空转折关系和三空题视频讲解-智课教育旗下智课教育.pdf
- HMI选型手册(缩小).pdf
- IEEE Journal 投稿指南_投稿篇二.pdf
- IKO宽幅导轨LWF.pdf
- Instructions for Completing Form DAG-71 Application for Transfer….pdf
- 深度解析(2026)《JBT 9168.5-1998切削加工通用工艺守则 钻削》.pptx
- 深度解析(2026)《JBT 9168.10-1998切削加工通用工艺守则 数控加工》.pptx
- 深度解析(2026)《JBT 9315-1999大地测量仪器 水准标尺》.pptx
- 深度解析(2026)《JBT 10456-2004胶带封箱机》.pptx
- 深度解析(2026)《QB 1432-2001果冻》:一部标准如何塑造与预见食品产业的未来二十年?.pptx
- 深度解析(2026)《NBT 10520-2021现代化安全高效绿色露天煤矿评价规范》.pptx
- 深度解析(2026)《NBT 25016.4-2013核电厂常规岛设备监造技术导则 第4部分:凝汽器》.pptx
- 深度解析(2026)《NYT 1668-2023农业野生植物原生境保护点建设技术规范》.pptx
- 深度解析(2026)《QBT 1833-1993轻革平展挤水机》.pptx
- 深度解析(2026)《QBT 2454-2013家具五金 抽屉导轨》.pptx
最近下载
- 深度解析(2026)《AQ 2013-2008金属非金属地下矿山通风安全技术规范》.pptx VIP
- 智慧园区智能安防解决方案概述.pptx VIP
- 领导班子2025年度民主生活会对照检查材料1.doc VIP
- 多元羧酸和磷酸对牙本质脱钙作用的比较.pdf VIP
- GB 55007-2021 砌体结构通用规范.docx VIP
- 2026五个带头发言材料三.docx VIP
- 鹤煤三矿围岩地质力学评估报告-终稿.pdf VIP
- 中国新型城镇化的低碳发展路径——问题、策略与案例.pdf VIP
- HAF003《核电厂质量保证安全规定》的理解要点共109页.ppt VIP
- 产品质量先期策划控制程序APQP.docx VIP
原创力文档


文档评论(0)