笔记3


Linux 文本编辑器vim
命令行模式:
在当前光标下,复制n行:nyy;剪切n行:ndd;把复制或剪切的数据粘贴到光标下一行/上一行:p/P;撤销前一操作:u;进入插入模式:a/A/i/I/r/R/o/O;
区块选择:选列:按住v;选行:按住V;选矩阵:ctrl+v
底行模式:
:/xxxxx   #查找(往后找)
:?xxxxx   #查找(往前找)
: s/原替换/替换/g(c)     #内容全部替换(部分替换)
例如:  n1,n2 s/word1/word2/g            #n1到n2行里面所有的word1全部替换为word2
全文替换可以:
  1. 1,$ s/word1/word2/....
  2. % s/word1/word2/...
另存为: n1,n2 w[filename]    [filename]可加路径
:r[filename]      #将filename文件全部插入到当前文件中
vim多文件操作方法:
  1. vim+多文件名         #底行模式n/N 往后/前换
  2. 在第一个文本下,进入底行模式,输入sp xxx.x(文件名),实现多窗口操作。 ctrl+ww(轮换);ctrl+wj(往下切换);ctrl+wk(往上切换)

Linux 编译器gcc
预处理命令有:
  1. 文件包含编译
  2. 宏定义,即用宏体替代宏名
  3. 条件编译
  4. P.S.计算机能执行二进制文件,但不能执行所有二进制文件
gcc常用的参数如下:
  1. 概述:gcc [-Wall] [-O1..3] [-g] [-o name] file...;其中-Wall: 打开所有警告项(-Werror:生成所有错误报告;-w:不生成警告错误信息);-O: 设置优化级别,O0表示关闭优化功能;-g: 将调试信息编译到目标文件中;-o name: 指定输出文件的名称是name;file: 被编译(链接)的文件
       2.-E   ;指将源文件进行预处理,生成.i文件。例如:gcc -E hello.c > hello.i(>也可以是-o)
       3.-c   :指将已经预处理过的-i文件进行处理,出.o文件;也可处理.s文件,出.o文件
       4.-S   :处理已经编译过的.o文件,出.s文件
       5.-o   :后面只加输出文件
       6.-D   :编译的时候进行宏定义
       7.-U   :取消一个宏定义
       8.-I    :查找自定义的头文件的路径
       9.-O  :优化处理,分四级:O0,O1,O2,O3。time ./文件  可查看优化效果
库文件的编写
lib+name+.a(静态库);lib+name+.so(动态库;分动态共享库和动态链接库)
静态库:.a:占用空间,提高运行速率,更新不及时
动态库:.so:不占用空间,运行速率缓慢,不需要多处修改
静态库创建:
  1. gcc -c    :源文件.c文件生成.o文件
  2. ar rcs 静态库名(libname.a) 目标文件1 目标文件2 ...
  3. 补充使用:
  • ar -t libname.a    #查看指定库里面有哪些文件
  • ar -d(v) libname.a add.o    #删除库里的指定文件(无v为无提示,有v为有提示)
  • ar -x(v) libname.a  add.o    #把指定文件从库里面复制出来(有无v同上)
静态库使用:
gcc file1.c file2.c file3.c ... -o out -L.(.表示路径) -lname
动态库创建:
gcc -shared -fPIC -o 库名.so 源文件.c
动态库使用
gcc 源文件.c ./(路径) 库名.so -o 可执行文件

你可能感兴趣的:(笔记3)