Linux day2

vim-gcc-library

vim光标的移动

vi 与 vim vim是vi的增强版
←h →l ↑k ↓j
在这里插入图片描述
0 行首
s 行尾
gg 文件的开头
G 文件的末尾
ng 到n行

vim 删除

删除内容
x 删除光标所在字母
X 删除光标前字母
dw 删除单词(从光标开始)
d0 删除光标到行首
d$(D) 删除光标到行尾
dd 删除光标所在行
ndd 删除光标所在行开始n行

vim复制粘贴与可视模式

复制粘贴
yy 复制一行内容
dd 剪切一行内容
nyy 复制n行内容
p/P 粘贴(注意粘贴行不一样)
r 替换 输入r之后,再输入要替换的字母

可视模式
v 进入可视模式
移动光标选中内容
按y 复制内容
移动光标到目的地
按p/P将内容粘贴

vim内容查找 格式调整

/srcpattern srcpattern为要查找的内容
n/N 进行遍历,注意向前还是向后
?scrpattern
n/N 进行遍历,方向与/ 的方式相反
光标移动到字符串上按#,也可以查找

格式调整
gg=G 文件格式调整
》当前光标所在行右移一个tab
《 光标所在行左移一个tab
n>> 移动光标开始n行左移一个tab
n<<光标开始n行左移一个tab

man 帮助查看 K或者n+K

vim从命令模式到编辑模式

i 在光标前插入
a 在光标后插入
l 在行首插入
A 在行尾插入
o /O 在下一行或上一行插入
s 删除当前字母变为插入模式
S 删除当前行 进入插入模式、

vim末行查找替换与保存退出

执行命令
:!ls -l
代码替换
:s/src/des 只会替换当前行第一个匹配的scr 为des
:s/src/des/g 只会替换当前行所有的src为des
:%s/src/des/ 只会替换所有行的第一个匹配src为des
:%s/src/des/g 替换文件内所有的src 为des

保存退出
:wq 保存退出
:w 只保存
:q 只退出文件不能修改
:ql 强退
:x 保存退出
zz 保存退出(命令模式下)

vim 分屏模式

sp 横分
vsp 竖分
qall 全退不保存
wqall 全保存退出

vim的配置文件

设置 ~/.bbashrc
添加set -o vi 可以直接使用vim的各种快捷键

gcc编译流程

gcc工作流程
在这里插入图片描述

gcc 编译参数

mean
-l 包含头文件路径(可以绝对路径,可以相对路径)
-O 优化选项,1-3越高优先级越高
-L 包含的库路径
-l 指定库名(通常libxxx.so 或者libxxx.a,-lxxx)
-o 目标文件
-r 编译成.o文件
-g 用于gbd调试,不加此选项不能调试gbd
-Wall 显示更多的警告
-D 指定宏编译
-lstdc++ 编译c++代码

编译GCC目录代码
gcc add.c -l./include/-D DEBUG -o app-g-Wall -O1
编译c++代码
gcc hello.cpp -lstdc++ -o cppapp -O

静态库

生成.o文件
再生成libCalc.a文件
可以用nm命令查看文件内容

动态库

在这里插入图片描述
制作动态库
编译.o文件要求与位置无关,使用参数-fPIC
打包成so文件 -shared
发布库文件和头文件
使用
编译-L 指定路径 -l 指定库名 用法同静态库
执行的时候不能找到动态库的解决方法
拷贝到系统并的库路径(不推荐)
修改 LD_LIBRARY_PATH环境变量,将库所在的路径添加到环境变量中用冒号分割
修改sudo vi /etc/ld.so.conf,添加库路径在该文件中,sudo ldconfig -v

静态库与动态库的优缺点

优点 缺点
静态库 执行快 发布应用时不需要发布库 执行程序体积会比较大 库变更时需要重新编译应用
动态库 执行程序体积小 库变更时,一般不需要重新编译应用 执行时需要加载动态库,相对而言比静态库慢 发布应用时需要同事发布动态库
发布了4 篇原创文章 · 获赞 0 · 访问量 83

猜你喜欢

转载自blog.csdn.net/huster0828/article/details/104168382