Linux编程环境(Vim,Gcc)01

Linux编程环境(Linux网络编程笔记)01

Linux环境下的编译器

vim的使用简介:

1.vim的安装:
使用命令:apt-get install +软件包名
可以用来安装各种软件

2.vim编译器的模式:
Vim主要分为普通模式和插入模式。普通模式是命令模式,插入模式是编辑模式。
再插入模式下可以进行字符的输入,输入的键值显示在编辑框中,这些文本可以用于编辑。普通界面是进行命令操作的,输入的值代表一个命令。
插入模式和普通模式的切换分别为按i键和Esc键。普通模式下按i键会进入插入模式。插入模式下按Esc键进入普通模式。

使用Vim建立文件

  1. 建立文件:
    使用命令:vim +文件名
    可以建立一个新的文件并打开。
  2. 进入插入模式:
    打开文件后,按i进入插入模式。vim会在底部显示“–INSTERT–”,表示当前模式为插入模式。
  3. 退出vim,当编译完成之后,按Esc返回普通模式,之后输入":wq"退出vim编辑器。

使用vim编辑文本

  1. 移动光标:h,j,k,l
    h:左,l:右,j:下,k:上。
  2. 删除元素x,dd,u,Ctrl+R
    x是删除光标所在的单个字符
    dd是删除光标所在行
    Ctr+R是一个特殊命令,他的作用是将内存中的字符赋值到所在光标位置之后。
  3. 复制粘贴p,y.
    粘贴命令为p,y命令是复制。
  4. 查找字符串"/".
    查找字符串的格式是" /XXX ",其中XXX代表的是待查找的字符串
    输入字符”n“进入到下一个检索到的字符串,输入”N“进入到上一个检索字符串
  5. 跳到某一行G
    数字+G

Linux下的GCC编译器工具及集

介绍

  1. GCC是Linux下的编译工具集,不仅可以编译c/c++语言,还可以编译Objective-c,Pascal
    等语言
  2. GCC的c编译器为gcc,其命令格式为
Usa: gcc [options] file...
  1. 文件拓展名的含义:
    文件拓展名及其含义.
  2. GCC编译器含义
GCC编译器命令含义
cc指的是C语言编译器
cpp指的是预处理编译器
gcc指的是C语言编译器
g++指的是c++语言编译器

编译程序的基本知识

  1. 编译器一般对程序有四个编译阶段:
    预编译—编译和优化—汇编—链接
文件作用
源文件存放可编辑代码的文件
目标文件经过编译器编译生成的CPU可识别二进制代码
可执行文件目标文件与相关的库链接后的文件

单个文件编译为可执行文件

  1. 直接使用gcc命令加上需要编译的文件名
gcc + 文件名可直接编译为可执行文件
./ +文件名执行可执行文件
gcc -0 +名称+文件名生成指定文件名的可执行文件

编译生成目标文件

命令功能
gcc -c +文件名生成目标文件
gcc -c -o +,名称 +文件名生成指定名字的目标文件
gcc -c+多个文件名同时编译多个目标文件

生成 .o 文件

预处理

使用命令

gcc -E +文件名.c

生成 .i 文件

编译为汇编语言

使用命令

gcc -S +文件名.c

生成 .s 文件

生成和使用静态链接库

静态库是一个obj文件的合集,通常静态库是以“.a"为后缀。
静态库的优点:
** 可以在不用重新编译程序库代码的情况下,进行程序的重新链接,这种方法节省了编译过程的时间。
** 开发者可以提供库文件给使用的人员而不用开放源代码,这是库函数提供者常用的手段。

1.生成静态链接库
创建静态库的最基本步骤是生成目标文件,然后使用工具ar对目标文件进行归档。工具ar的-r选项可以创建库,并把目标文件插入到指定库中。其命令为:

ar -rcs +名称.r +目标文件
  1. 使用静态链接库
    在编程时常常需要使用库函数,例如C标准库等。GCC链接时使用库函数和一般的obj文件的形式是一样的,例如使用main.c进行连接时,需要使用已经编译好的静态链接库libstr.a,命令格式如下:
$gcc -o test main.c libstr.a

也可以使用”-l 库名"命令进行,库名是不包含函数库和拓展名的字符串。例如编译main.c链接静态库libstr.a的命令可以修改为:

$gcc -o test main.c -lstr

上面的命令将会在系统默认的路径下查找str函数库,并把它链接到要生成的目标程序去。可能系统会提示无法找到库文件str,这是由于由于str库函数没有在系统默认的查找路径下,需要显示指定库函数的路径,例如库函数和当前编译文件在同一目录下:

$gcc -o test main.c -L./ -lstr

注意:
在使用-l选项时,-o选项的项目名称要在-l链接的库名称之前,否则GCC会认为-l时输出目标而出错。
**===**会有更新…

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile_new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值