当前位置: 首页 > wzjs >正文

网站建设案例公司域名状态查询工具

网站建设案例公司,域名状态查询工具,怎么建立微信网站,wordpress用户注册中文不能目录 一、前言 二、Vim的使用 2.1 普通模式 2.2 插入模式 2.3 命令行模式 2.4 可视模式 三、GCC编译器 3.1 预处理阶段 3.2 编译阶段 3.3 汇编阶段 3.4 链接阶段 3.5 静态库和动态库 四、Gdb调试器 五、总结 一、前言 在Linux环境下使用C语言进行编程是一项基础且…

目录

一、前言

二、Vim的使用

2.1 普通模式

2.2 插入模式

2.3 命令行模式

2.4 可视模式

三、GCC编译器

3.1 预处理阶段

3.2 编译阶段

3.3 汇编阶段

3.4 链接阶段

3.5 静态库和动态库

四、Gdb调试器

五、总结


一、前言

在Linux环境下使用C语言进行编程是一项基础且重要的技能。本文将详细介绍在Linux下使用C语言编程的完整流程,包括代码编辑(使用vim)、编译(使用gcc)、调试(使用gdb)。对于大型项目,手动编译每个文件会非常繁琐,因此我们还需要使用Makefile进行项目管理。本文将重点讲解vim、gcc和gdb的使用,后续会专门更新一篇关于Makefile的文章。

二、Vim的使用

Vim是一款功能强大的模态编辑器,广泛应用于Linux、Unix、MacOS和Windows等操作系统。它具有四种模式:普通模式、插入模式、命令行模式和可视模式。用户可以通过配置文件(.vimrc)对Vim进行个性化定制。

2.1 普通模式

普通模式是Vim的默认模式,键盘按键被解释为命令。以下是一些常用快捷键:

功能键

说明

i

切换到插入模式,光标在所在位置的前面

I(大i)

切换到出入模式,光标跑到行首

o(小o)

切换到插入模式,在原来这行的下面新建一行

O(大o)

切换到插入模式,在原来这行的上面新建一行

a

切换到插入模式,光标在所在位置的后面

A

切换到出入模式,光标跑到行尾

G

移动到文件结尾

gg

移动到文件开头

dd

删除本行

yy

复制本行

u

撤销上一次操作

p

粘贴

2.2 插入模式

功能键

说明

ESC

返回到普通模式

2.3 命令行模式

通过在普通模式下按下 : 键(英文的冒号)进入命令行模式。

功能键

说明

w

保存

q

退出

q!

强制退出

wq

保存并退出

w filename

另存一个名为filename的文件

set nu

显示行号

2.4 可视模式

可视模式用于选择文本。用户可以通过在普通模式下按v键进入普通可视模式,按V键进入行可视模式,按Ctrl + v键进入块可视模式。

不过我平时不怎么用这个模式,所以这部分你们可以看看其他博主的文章。

三、GCC编译器

GCC(GNU Compiler Collection)是Linux下常用的C语言编译器。编译过程分为四个阶段:预处理、编译、汇编和链接

3.1 预处理阶段

预处理阶段处理源代码中的预处理指令(如#include、#define等)。可以使用-E选项查看预处理结果:

gcc –E hello.c –o hello.i

3.2 编译阶段

编译阶段检查代码的语法和规范,并将代码翻译成汇编语言。可以使用-S选项查看汇编代码:

gcc –S hello.i –o hello.s

3.3 汇编阶段

汇编阶段是把编译阶段生成的“.s”文件转成目标文件,可使用选项“-c”就可。

gcc –c hello.s –o hello.o

3.4 链接阶段

链接阶段将目标文件与库文件链接,生成可执行文件。可以使用以下命令完成链接:

gcc hello.o -o hello

查看该二进制文件依赖的库:

ldd hello

  • linux-vdso.so.1:虚拟动态共享对象(Virtual Dynamic Shared Object),它是 Linux 内核提供的一种机制,用于优化某些系统调用的性能。
  • libc.so.6:GNU C 标准库(GNU C Library)的动态链接库文件。
  • /lib64/ld-linux-x86-64.so.2:动态链接器(Dynamic Linker),也称为加载器(Loader)。它的作用是负责加载可执行文件及其依赖的共享库,并在程序运行时解析符号。

gcc编译器选项表

后缀名

功能

-c

只编译不链接,生成目标文件“.o”

-S

只编译不汇编,生成汇编代码

-E

只预编译,不做其他处理

-g

在可执行程序中包含标准调试信息

-o file

把输出文件输出到file里

-v

打印出编译器内部编译过程的命令行信息和编译器的版本

-I dir

在头文件的搜索路径列表中添加dir目录

-L dir

在库文件的搜索路径列表中添加dir目录

-static

链接静态库

-llibrary

链接名为library的库文件

-I dir

“-I dir”选项可以在头文件的搜索路径列表中添加 dir目录。由于Linux中头文件都默认放到“/usr/include/”目录下,因此,当用户希望添加放置在其他位置的头文件时,就可以通过“-Idir”选项来指定,这样,Gcc就会到相应的位置查找对应的目录。

-L dir

选项“-L dir”的功能与“-I dir”类似,能够在库文件的搜索路径列表中添加 dir目录。

例如有程序 hello.c 需要用到目录“/root/workplace/Gcc/lib”下的一个动态库 libyourname.so,则只需键入如下命令即可:

gcc hello.c –L= /root/workplace/Gcc/lib –lyourname –o hello

需要注意的是,“-I dir”和“-L dir”都只是指定了路径,而没有指定文件,因此不能在路径中包含文件名。

另外值得详细解释一下的是“-l”选项,它指示 Gcc 去连接库文件 libyourname.so。由于在 Linux下的库文件命名时有一个规定:必须以 “lib” 3 个字母开头。因此在用-l 选项指定链接的库文件名时可以省去 l、i、b 3 个字母。也就是说 Gcc 在对“-lyourname”进行处理时,会自动去链接名为 libyourname.so 的文件。

警告和错误选项

选项

含义

-ansi

支持符合ANSI标准的c程序

-pedantic

允许发出ANSI C标准所列的全部警告信息

-pedantic-error

允许发出ANSI C标准所列的全部错误信息

-w

关闭所有警告

-Wall

允许发出Gcc提供的所有有用的报警信息

-werror

把所有的警告信息转化为错误信息,并在警告发生时终止编译过程

-On

对代码进行优化,n=0~2 数字越大,优化等级越高

3.5 静态库和动态库

  • 静态库:编译链接时将库文件的代码全部加入到可执行文件中,文件后缀为.a。使用静态库的程序在运行时不再需要库文件。
  • 动态库:编译链接时不将库文件的代码加入到可执行文件中,而是在程序运行时由运行时链接器加载库文件,文件后缀为.so。使用动态库可以节省系统开销。

四、Gdb调试器

Gdb 调试器是一款 GNU开发组织并发布的UNIX/Linux下的程序调试工具。

使用c进行编译,注意一定要加上选项“-g”,这样编译出的可执行代码中才包含调试信息,否则之后Gdb无法载入该可执行文件。

步骤1 增加调试信息

gcc -g test.c -o test

步骤2 进入调试模式

gdb test

命令

功能

l(list)

查看文件

b(break) n

在第n行设置断点

delete n

删除断点n

info b

查看断点情况

disable/enable n

不使能/使能断点n

r(run)

运行代码

p(print) n

查看变量n的值

n(next)

单步运行(不会进入函数)

s(step)

单步运行(会进入函数)

c(continue)

恢复正常执行(遇断点停)

finish

恢复正常执行(遇断点不停)

help

帮助信息

q(quit)

退出调试

五、总结

本文详细介绍了在Linux环境下使用C语言编程的完整流程,包括使用Vim进行代码编辑、使用GCC进行编译和链接、使用GDB进行调试。通过这些工具,开发者可以高效地进行C语言编程和调试。希望本文对您有所帮助,后续会继续更新关于Makefile和其他高级主题的文章。

http://www.dtcms.com/wzjs/106332.html

相关文章:

  • 外贸哪个职位最吃香佛山市seo推广联系方式
  • 什么是电子商务公司奇零seo赚钱培训
  • 哪个网站建站好正在直播足球比赛
  • 产品推广包括哪些内容搜索引擎推广seo
  • apache 网站建设制作网页的软件有哪些
  • 定制网站制作系统百度信息流推广平台
  • php mysql网站开发bt磁力搜索器
  • 装修网站建设方案网络优化大师
  • 做推广要知道的网站沈阳百度seo关键词优化排名
  • 建站公司那家好西安seo搜推宝
  • 日照seo公司seoaoo
  • 个人网站设计论文一万字域名网站
  • 学校资源网站 建设网上代写文章一般多少钱
  • 网站建设征求意见表线上seo关键词优化软件工具
  • 山东平台网站建设价位设计公司企业网站
  • 为什么建手机网站太原模板建站定制网站
  • 淄博北京网站建设搜索引擎营销成功案例
  • 国内十大网站建设淘宝关键词搜索量查询工具
  • 企业电子商务网站建设的最终目的关键词搜索量排名
  • 提供企业网站建设价格seo到底是做什么的
  • ashx做网站竞价托管公司联系方式
  • 网站建设及推广人员重庆网站seo外包
  • 做网站服务器应该怎么配置甘肃seo技术
  • 做外贸学网站西安高端模板建站
  • web网站转为html5页面湖北网站设计
  • 沈阳电力建设总公司网站百度一下网页
  • 网站开发参数seo蜘蛛屯
  • 百度霸屏推广靠谱吗上海百度seo网站优化
  • 艺术培训学校系统网站怎么做百度网盘客服
  • 南通网站建设方法百度搜索引擎广告位的投放