【Linux编程环境】代码编译与调试

1.编译代码的基本知识

源文件:存放可编辑编程语言代码的文件。

目标文件:源文件经过编译器的编译,生成的CPU可识别的二进制代码文件。(但是目标文件一般不能执行,因为其中引用的库中的变量和函数还没有解析)。

可执行文件:目标文件与相关库链接之后的文件,可执行。

预编译:将源文件中的头文件指明的文件代码引入源代码,并替换宏定义。

编译器安装后,头文件路径和库文件路径已指明,供编译器默认查找。

 

2.GCC

GCC是Linux环境下的代码编译工具集。GCC包含不同语言代码对应的编译器。GCC中C语言的编译器是 gcc。

当在Linux环境下输入命令 gcc helloworld.c 时:

a)GCC根据文件扩展名,选择相应语言的编译器。识别C文件,选择对应的编译器 gcc。

b)由于命令没有带参数,所以gcc编译器将进入自动编译流程:预编译、将C文件编译生成目标文件、将目标文件链接默认系统库生成可执行文件、删除目标文件。

上述未带参数的编译命令会生成默认名称的可执行文件 a.out

指定可执行文件的名称:gcc -o hellotest helloworld.c

生成目标文件,不自动删除目标文件:gcc -c helloworld.c     生成默认的目标文件 helloworld.o

生成目标文件,并指定目标文件的名称:gcc -c -o test.o helloworld.c      生成目标文件 test.o

编译两个相互引用的文件,统一生成一个可执行文件:gcc -o helloworldtest helloworld.c main.c

                                          也可以分步执行:gcc -c helloworld.c main.c

                                                                       gcc -o helloworldtest helloworld.o main.o

预编译:gcc -o helloworld.i -E helloworld.c      生成预编译后的中间文件helloworld.i,其中的宏已经替换

 

3.Makefile

多文件工程的编译可以编写Makefile文件,然后通过make命令读取Makefile文件中的配置,将多个文件编译成可执行文件。

 

4.GDB

(gdp)  help      获取命令帮助

(1)GDB看超长字符串的完整内容: 默认显示是截断的,末尾有省略号"..."
    (gdb) set print element 0
    (gdb) p echo_info

(2)跳出函数内部,继续执行:(gdb) finish

(3)调整显示格式:(gdb) set pr pr

(4)一直执行到259行:(gdb) until 259

(5)条件断点:(gdb) b -c ((*(pPData+7)==6)&&(*(pPData+8)==7)&&(*(pPData+9)==8)) drv_rx_pkt

(6)查看报文内容,以十六进制:(gdb) p/x pktEnv->pPkt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值