嵌入式高级编程语言开发GDBGCC(编译程序文件编译器可执行)「嵌入式 编译」

GNU工具-编译工具: 把一个源程序编译为一个可执行程序-调试工具:能对执行程序进行源码或汇编级调试-软件工程工具:用于协助多人开发或大型软件项目管理,如make CVS subvision-其他工具:用于把多个目标文件链接成可执行文件的链接器,或都用作格式转换的工具1、GCC编译器简介全称为GNU CC,GNU项上中符合ANSI C标准的编译系统编译如C、C++、Object、C 、JAVA...GCC 是可以在多种硬件平台上编译出可执行程序的超级编译器,其执行效率与一般的可编译器相比平块效率高20%以上一个交叉平台编译器,适合在嵌入式领域的开发编译。
所支持后缀- .c C原始程序- .C/.cc/.cxx C++原始程序- .m Objective-C原始程序- .i 已经处理过的C原始程序- .ii 已经处理过的C++原始程序- .s/.S 汇编语言原始程序- .h 头文件- .o 目标文件- .a/.so 库文件编译器的主要组件分析器:将源代码转换为汇编语言汇编器:汇编语言转换为CPU可以执行的字节码链接器:标准C库:核心基本用法GCC最基本的用法:gcc [options] [filenames]-c 只编译,不连接成可执行的文件-o output filename 确定输出文件名称为 output filename,同时这个名称不能和源文件同名-g 产生符号调试工具(GND的gdb)所必要的符号资讯,要对源代码进行调试,必须加入这个选项-O 对程序进行优化编译、连接、采用这个选项-O2 比-O更好的优化编译,连接,编译速度慢-I dirname,将dirname所指出的目录加入程序头文件目录列表中-L dirname,将dirname所指出的目录加入到程序函数档案库文件的目录列表中常见错误一、C语法错误-错误信息:文件source.c中第几行有语法错误(syntex error)二、头文件错误-找不到头文件head.h(Can not find include file head.h)三、档案库错误-链接程序找不到所需的函数库(ld:-lm: No such file or directory)四、未定义符号-有未定义的符号(Undenfined symbo1)编译过程1、预处理(Pre-Processing) 源文件.c 生成.i2、编译(Compiling) 文件.i生成.s3、汇编(Assembling) 文件.s生成.o4、链接(Linking) 文件.o生成可执行程序.exe例:#include <stdio.h>#include <math.h>#define N 10#define _DEBUG_int main(){ double m =615,n; m +=N; n = sqrt(m);#ifdef _DEBUG_ printf("debug:m=%lf n=%lf\n",m,n); #else printf("release:m=%lf n=%lf\n",m,n); #endif return 0; }gcc -E gccdemo.c -o gccdemo.i 输出.igcc -o gccdemo gccdemo.c -lm2、GDB调试工具首先使用gcc对test.c进行编译,注意一定要加上选项 -ggcc - test.c -o testl 查看文件b 6 设置断点del 1 删除断点info b 查看断点情况p n 查看变量值n s 单步运行c 恢复程序运行help 帮助q 退出调试set 参数 设置输入参数
嵌入式高级编程语言开发GDBGCC(编译程序文件编译器可执行)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息