【嵌入式Linux C编程】2018.3.7 Linux C语言开发工具

时间:2021-11-20 02:07:06

嵌入式 Linux C 语言开发工具

文本编辑器Vi(Vim)

Vi分为3种状态:命令行模式;插入模式;底行模式。各功能区分如下:

命令行模式:控制光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或者底行模式。

插入模式:只有在插入模式下,才可以输入文字,按【ESC】键可以返回命令行模式。

底行模式:将文字保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。与命令行模式可以归一类。

Vim配置文件:为了更加便捷地编写代码可以在配置文件 /etc/vim/vimrc 中修改添加相关代码,比如设置自动缩进,设置行号,设置关键字高亮等。

Vi常用的命令:

进入vim:vim file

切换至插入模式:命令行模式下按一下i键

退出vim::wq(存盘并退出vim);:q!(不存盘强制退出vim)

删除字符:x或#x 表示删除从光标位置开始处一个或#个字符(以下均为命令行模式下使用)

删除行:dd或#dd 表示从光标位置开始往下删除一行或#行

复制粘贴:yy或#yy 表示从当前行开始往下复制一行或者#行,p表示将内容粘贴在光标之后 

快速移动光标:shift+g 移动至最后一行; gg移动至首行

查找关键字: /关键字 按n键可以一直往下找关键字

替换字符:%s/old/new/g 表示用new代替全文中的old

gcc编译器

编译指令:gcc tePst.c -o test 生成test可执行文件

编译过程分为4个阶段:

预处理(Preprocessing):gcc -E test.c -o test.i  处理所有#开头的语句

编译(Compilation):gcc -S test.i -o test.s  进行语法检查;将C语言翻译为汇编语言

汇编(Assembly):gcc -c test.s -o test.o  将汇编语言编译成二进制文件

链接(Linking):gcc test.o -o test  链接库文件;输出目标文件test

工程管理器 Makefile

Makefile的核心是一系列的规则,规则的基本格式为:

target:dependency

        (tab字符)command

target(目标):需要生成的文件名

dependency(依赖):输入从而产生目标文件

command(命令):是make命令执行的动作。一个规则可以有多条命令,每个命令占一行

在执行make的过程中,为防止由于同名而与真实文件产生混淆,提出了伪目标的概念。

比如 .PHONY:clean ,在执行make clean时就会直接进行clean的动作而不会对同名的clean文件产生影响。

gdb调试工具

调试命令有两个步骤:s1: gcc test.c -o test -g ; s2: gdb test  启动后进入gdb交互界面,可以输入gdb的命令开始调试。常用的命令有:

list(缩写 l):列出源码,使用一次最多可以列出10行源码;

break(缩写b):设置断点。可使用info b查看断点信息,使用delete [number]删除断点;

run(缩写r):运行程序;continue(缩写c):继续运行;

next:向下执行一行源码,而不会进入到被调用函数;

step:向下执行一个步骤,会进入到被调用函数;

print(缩写p):可以打印测试过程中变量的值;

shell命令解析器

可以将用户输入的指令直接转换为机器可以运行的程序,而不需要人为编译。

需要注意的是,编写shell脚本的格式是固定的,开头为:#!/bin/bash;创建的文件后缀为.sh。 

所有的变量都有字符串组成,不需要对变量进行声明,如 a = "hello world!",输出使用 echo ${a} ,括号可以省略。

shell脚本中有默认变量。如$# $* $0 $1 $2 分别表示传入脚本的命令行参数个数;所有命令行的参数值;命令本身(shell文件名);第一个命令行参数;第二个命令行参数。