TreeMind树图在线AI思维导图
当前位置:树图思维导图模板高校与高等教育其他学科程序编程常用工具思维导图

程序编程常用工具思维导图

  收藏
  分享
免费下载
免费使用文件
U334911953 浏览量:842023-05-20 14:12:57
已被使用12次
查看详情程序编程常用工具思维导图

程序编程常用工具

树图思维导图提供 程序编程常用工具 在线思维导图免费制作,点击“编辑”按钮,可对 程序编程常用工具  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:82f38650438710aeb7543875e632c5de

思维导图大纲

常用工具思维导图模板大纲

编辑器

vim安装

安装包方式安装

dpkg -i rpm

apt-get

apt install vim

vi、vim(vi的升级)

基本使用

打开操作

vim filename

直接打开文件

vim +行号 filename

命令模式

打开文件默认进入命令模式

命令

文本删除操作

d0

删除从光标前一个字符到行首内容

D或d$

从光标到行尾

(n)x

删除光标处的字符(n代表向右要删除的字符数)

(n)X

删除光标前的字符(n代表光标前字符向左要删除的字符数)

(n)dd

删除光标所在行(n代表要删除的行数)

(n)dw

删除一个单词(n代表要删除的单词数)

n代表操作的个数

文本复制操作

(n)yy

复制光标所在行(n代表当前及后n-1行)

Y

复制光标所在行

(n)yw

复制一个单词(n表示复制指定的n个单词)

文本粘贴指令

p

粘贴当前缓冲区内容

撤销指令

u

返撤销

Ctrl r

屏幕滚动

Ctrl + u

将屏幕向前翻滚半屏幕

Ctrl + d

将屏幕向后翻滚半屏幕

Ctrl + f

将屏幕向后翻滚一屏幕

Ctrl + b

将屏幕向前翻滚一屏幕

指针行跳变

n+enter 下移动n行

0 本行开头 $行位

nG:光标移动倒n行

gg G:跳 开始、结尾

插入模式

插入文本命令

i

将文本插入到光标所在位置

I

将文本插入到当前行首

追加文本命令

a

将文本加到光标所在位置之后

A

将文本追加到所在行尾

空行插入命令

o

在光标所在行下面添加空行

O

在光标所在行上面添加空行

按esc进入命令行模式

底行模式

底行操作

命令模式下按冒号进入

退出指令

q!

强制退出

w

w filename

w!

w! filename

wq

先保存在退出

shift+zz

命令行模式

Ubuntu下均为强制保存

搜索字符串

/字符串

从光标开始向后搜索

n:往下找

N:往上找

?字符串

从光标开始向前搜索

字符串替换

%s /源字符串/目标字符串/g

[rang] s/str1/str2/g

rang 检索范围

可视模式

命令模式下v进入可视模式

d:删除 y:复制 x:剪切

vim的配置

配置文件 /root/.vimrc

/etc/.vimrc

编译器

gcc编译器

程序编译过程

编译预处理 gcc –E xxx.c –o xxx.i

处理伪指令(#)和特殊的特殊符号

伪指令包括:1)宏定义指令;       2)条件编译指令;       3)头文件包含指令;

编译 gcc -S xxx.i -o xxx.s

把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生成相应的汇编代码文件

汇编 as xxx.s -o xxx.o

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句对应一条机器指令

链接 gcc xxx.o -o xxx

头文件只是函数声明,实现封装在库文件中,链接就是找到指定路径下的库文件

常用编译选项

1、没有任何选项:gcc helloworld.c

结果会在与helloworld.c相同的目录下产生一个a.out的可执行文件。

2、-o选项,指定输出文件名:gcc -o helloworld helloworld.c

-o意思是Output即需要指定输出的可执行文件的名称。这里的名称为helloworld。

3、-c选项,只编译,不链接:gcc -c helloworld.c

-c意思就是Compile,产生一个叫helloworld.o的目标文件

4、-S选项,使用预处理C源文件产生的文件,产生汇编源文件:gcc -S helloworld.c

-S意思就是aSsemble,产生一个叫helloworld.s的汇编源文件

5、-E选项,预处理C源文件:gcc -E helloworld.c

-E意思就是prEprocess。输出不是送到一个文件而是标准输出。当然可以对它进行重定向:

gcc -E helloworld.c > helloworld.txt

6、 -g选项,产生供gdb调试用的可执行文件:gcc -g helloworld.c

产生一个叫作a.out的可执行文件,大小明显比只用-o选项编译汇编连接后的文件大。

动态库和静态库

概念

包含了通用函数的数据和二进制可执行机器码的文件

分类

静态库

.a

动态库

.so

优点

移植性

封装性

保护源码

库的制作

静态库的创建

准备功能函数的源文件 main.c xxx.c yyy.c zzz.h

只编译不连接,生成目标文件

gcc -c xxx.c -o xxx.o gcc -c yyy.c -o yyy.o

打包生成静态库 ar rc libxxx.a xxx.o yyy.o

利用静态库编译程序 gcc main.c -lxxx -L./ -l:指明用到的库文件 -L:库文件所在的的路径

动态库的创建

准备功能函数的源文件 xxx.c yyy.c zzz.h

2、只编译不连接,生成目标文件

gcc -c xxx.c -o xxx.o gcc -c yyy.c -o yyy.o

打包生成动态库

gcc -fpic -shared xxx.o yyy.o -o libxxx.so

作业

查一下-fpic -share的作用

利用动态库编译程序

编译应用程序 gcc main.c -lxxx -L./ -l:指明用到的库文件 -L:库文件所在的的路径

或者: 把库库文件放入/usr/lib/ 把头文件放入/usr/include/ gcc main.c -lxxx

./a.out //运行程序 记得动态库拷贝到 lib或者usr/lib

区别

静态库直接将库文件编译到可执行程序里面

动态库:动态去lib usr/lib 下去寻找 需要的库文件加载

ldd a.out:查询a.out程序运行需要的库文件

调试工具gdb

为何需要gdb

根据IEEE研究,每个重要软件最初都有缺陷,一般来说没100行有2个左右

常用调试技巧

测试

找出程序中存在的缺陷或错误

固化

让程序的错误可重现

定位

确定相关的代码行

纠正

修改代码纠正错误

验证

确定修改解决了问题

gdb调试工具

GNU自由软件

编译程序,加入调试信息

gcc -g -o xxx xxx.c

启动gdb

详细的在线帮助

help

常用调试命令及方法

run

运行一个程序

r l<ine_num>

r<arg1,arg2,....>

list

l line

l<line1,line2>

breakpoint

许多命令可以设置断点, help breakpoint 会列出这些命令

b <function-name>

继续运行 cont

直到下一个断点

info breakpoints

查看所有的断点信息

delete

d breakpoint num

enable

enable breakpoint <num>

disable

disable breakpoint <num>

clear

clear <line_number>

print

p arg

next

n

step

s

quit

退出

start

启动调试

next step

finish

结束循环 结束函数

next遇到函数直接执行得到结果,step进入函数内部,一步一步执行

工程管理工具make

make

相当于脚本编程语言

本质是实现自动化编译

需要makefile或者Makefile文件支持

-f

指定依赖文件

makefile

作用

告诉make 应该如何去构造相应的应用程序

构成

一组依赖关系和规则

依赖关系

作用

定义最终应用程序中的每一个文件与源文件之间的关系

语法结构

make要创建的目标名称+冒号+空格或tab+用空格或tab隔开的文件列表

特殊目标名称:all(伪目标)

all后面列出所有从属目标

all: myapp myapp.1

规则

作用

定义了目标的创建方式

语法结构

tab+规则,如tab+gcc -c main.c

注意:开头的tab不能用空格或多个空格代替,行--不能以空格结尾

注释

以#开头

make命令内置特殊宏

$@

目标文件

$^

所有的依赖文件

$<

第一个依赖的文件

伪目标 all

指定make的构建对象

Makefile

如果在文件夹内找不到makefile make会尝试去找Makefile文件

Makefile

规则

目标

依赖

目标:依赖 指令

指定makefile文件

make -f xxx

变量

定义

变量名=XXX

使用

$变量名

自由主题

相关思维导图模板

第五章思维导图

树图思维导图提供 第五章 在线思维导图免费制作,点击“编辑”按钮,可对 第五章  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6f6a0d03f765faada73875b1cd64cad0

程序化广告路径思维导图

树图思维导图提供 程序化广告路径 在线思维导图免费制作,点击“编辑”按钮,可对 程序化广告路径  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a5aa79d25b2060bb014ca7bfc15fae43