gcc g++环境变量设置_嵌入式开发-C语言高级编程-(GCC、GDB)的使用

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 #include #define N 10#define _DEBUG_int main(){    double m =615,n;    m +=N;    n = sqrt(m);#ifdef _DEBUG_    printf("debug:m=%lf n=%lf",m,n);    #else    printf("release:m=%lf n=%lf",m,n);    #endif    return 0;    }gcc -E gccdemo.c -o gccdemo.i 输出.igcc -o gccdemo gccdemo.c  -lm

2、GDB调试工具

首先使用gcc对test.c进行编译,注意一定要加上选项 -ggcc - test.c -o testl           查看文件b 6         设置断点del 1       删除断点info b      查看断点情况p n         查看变量值n  s        单步运行c           恢复程序运行help         帮助q            退出调试set 参数     设置输入参数
65864588dfe6145c56e43e033b3b4e21.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值