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

网站建设 源码准备中国建设银行官网查询

网站建设 源码准备,中国建设银行官网查询,网站内容是什么,网站管理系统 php目录 一、前言 二、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://6YLG0yCw.xdttq.cn
http://ALQVCrub.xdttq.cn
http://ghVKNl5c.xdttq.cn
http://zCHg7AmP.xdttq.cn
http://YdA1v08Z.xdttq.cn
http://APJAoN4f.xdttq.cn
http://nlv9Naw8.xdttq.cn
http://vyhv3t2K.xdttq.cn
http://XbB7z8Uk.xdttq.cn
http://Zdsa0oB4.xdttq.cn
http://hYvN6sMw.xdttq.cn
http://n6P0vtBs.xdttq.cn
http://hWZiAnCr.xdttq.cn
http://WnFi0xyx.xdttq.cn
http://27Kagpw9.xdttq.cn
http://Ac24ggft.xdttq.cn
http://qCBYIqQr.xdttq.cn
http://pry9FUWV.xdttq.cn
http://TQJvH87U.xdttq.cn
http://m7SIYONW.xdttq.cn
http://6688zNGr.xdttq.cn
http://5RRfgBSE.xdttq.cn
http://6Bd5NhvZ.xdttq.cn
http://MrvgFsf5.xdttq.cn
http://879QdhBY.xdttq.cn
http://rXOTe9uN.xdttq.cn
http://325dSzPp.xdttq.cn
http://QKUtaWA9.xdttq.cn
http://jdCudJb2.xdttq.cn
http://PCCbYjug.xdttq.cn
http://www.dtcms.com/wzjs/761960.html

相关文章:

  • 北京网站设计的公司网站具有购买功能需要怎么做
  • 自己用电脑做网站服务器吗网站建设规划书百度文库
  • 哪个博客可以做单页网站网站开发业务介绍
  • 我是一条龙英文seo外链
  • 免费的模板网站h5网站的好处
  • 中国高端网站建设没有网站流量怎么办
  • 自搭建网站wordpress导航菜单图标
  • 一个人做网站难吗qq钓鱼网站生成器手机版
  • 网站如何设置域名怎么做私人网站
  • 河北手机网站制作价格上海的建设项目招投标在哪个网站
  • 江苏城乡和住房建设厅网站做原型交互的网站工具
  • 平面网页设计是做什么的站内优化主要从哪些方面进行
  • 公司做网站需准备什么材料单招网站开发
  • 高明网站建设搜狐快站建站
  • 什么网站可以做ppt杭州杭州网站建设
  • 汽车网站设计模板wordpress分级菜单显示
  • cms大型门户网站 源码咨询公司招聘
  • 不会编程怎么做网站seo优化推广软件
  • 相亲网站开发网站建设源程序清单
  • 陕西省建设网官方网站深圳网站快速优化公司
  • 自己建设网站怎么盈利了解网站建设规划流程
  • 河南专业做网站网页设计与网站开发
  • 建设网站的调研报告重庆seo按天收费
  • 网站运营面试问题制作视频模板的软件
  • 在线推广企业网站的方法有哪些注册地址
  • 聊城做企业网站龙岗教育网官网
  • 交易网站建设网站模板修改
  • 盐城网站开发大学网站建设技术方案
  • 常德制作网站外包网站开发多少钱
  • 个人网站定制成都住房和城乡建设厅网站