(1)《基于Linux的C编程与内核导读》

第一章LinuxC编程基础

对于本章的读者,我们认为有一定的C语言编写基础,所以在此就不介绍C语言的一些基本知识了。这里我们重点介绍一下如何在Linux环境中编写C程序。

1.1 源代码编辑器VI的使用

原则上任何文本编辑器均可以编写C语言源代码,但在Linux下我还是推荐使用Vi进行源代码的编写。虽然对于初学者可能稍微有些困难,但是熟练掌握Vi的使用对于Linux用户来讲非常重要。

任何一台安装了Linux的计算机都会提供Vi软件,Vi有三种操作状态:命令模式、插入模式和末行命令模式,它们间的切换方式如图1-1 

 

 

图1-1:Vi三种模式之间的切换

 

1.1.1 快速入门

下面首先通过一个非常简单的例子让大家对Vi的使用有个大体的认识。本例子是编写一个C语言源文件HelloWorld.c

1:在提示符启动Vi,编辑HelloWorld.c文件:

Vi  HelloWorld.c

2:接着进入Vi命令模式的主界面,如图1-2所示:

 

 

 

图1-2 VI的主界面

 

3:此时按A键进入插入模式,注意界面最左下面一行的提示信息变成了――插入――。

4:接下来输入我们的源代码,方法和任何文本编辑器一样。编辑好的HelloWorld.c文件如图1-3所示,可以发现Vi自动将一些关键字涂上了不同的颜色。

 

 

图1-3 输入源文件代码

5:编辑好源文件后,就需要保存它。首先按Esc键,从插入模式退回命令模式,接着按 :键进入末行模式,此时输入wq并按回车,则存盘并保存。

 

1.1.2 Vi的常用命令

1:命令模式的常用命令

命令

说明

x

删除光标后的字符

dd

删除光标所在行

ndd

删除包括光标所在行的n行文本

u

恢复刚才被修改的文本

Y

复制当前行到编辑缓冲区

nY

复制当前行开始的n行到编辑缓冲区

p

将编辑缓冲区中的内容粘贴到光标后的一行

L

移至窗口的最后一行

G

移至该文件的最后一行

nG

移至该文件的第n

Ctrl+f

向后翻一页

Ctrl+b

向前翻一页

 

2:插入模式的常用命令

命令

说明

a

从光标所在位置后面开始新增文本

A

从光标所在行最后面的地方开始新增文本

i

从光标所在位置前面开始插入文本

I

从光标所在列的第一个非空白字前面开始插入文本

O

在光标所在列下新增一行并进入输入模式

O

在光标所在列上方新增一行并进入输入模式

 

3:末行命令模式的常用命令

命令

说明

:q

结束编辑

:w

存盘

:q!

强制离开VI,放弃存盘

:wq

存盘并退出

/exp

往前查找字符串exp

?exp

往后查找字符串exp

 

1.2 C语言编译器gcc的使用

Linux系统上运行的GNU C编译器(GCC)是一个全功能的ANSI C兼容编译器,虽然GCC没有集成的开发环境,但堪称是目前效率很高的C/C++编译器。

1.2.1使用 gcc

通常后跟一些选项和文件名来使用 GCC 编译器. gcc 命令的基本用法如下:

gcc [options] [filenames]

命令行选项指定的操作将在命令行上每个给出的文件上执行. 下一小节将叙述一些你会最常用到的选项.

下面举个简单的例子,编译我们上一节编写的HelloWorld.c源文件:

#gcc –o HelloWorld HelloWorld.c

此时会在原目录下看到生成了可执行文件HelloWorld,要看到程序输出结果,则只要输入./HelloWorld即可。

 

1.2.2 gcc 选项

GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的 GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数 Linux 命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的:

gcc -p -g test.c

gcc -pg test.c

第一条命令告诉 GCC 编译 test.c 时为 prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里. 第二条命令只告诉 GCC 为 gprof 命令建立剖析信息.

当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为 a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫 a.out 的文件:

gcc test.c

你能用 -o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫 count.c 的 C 程序编译为名叫 count 的可执行文件, 你将输入下面的命令:

gcc -o count count.c

 

1.2.3 常用选项含义:

-c  GCC仅把源文件编译为目标代码。

-static  链接静态库,即执行静态链接。

-O  GCC对源代码进行基本优化。这些优化在大多数情况下都会使程序执行得更快。

-On  指定代码优化的级别为n,n为{0,1,2,3}中的一个。如-O2选项告诉GCC产生尽可能小和尽可能快的代码。

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

-pedantic  允许发出ANSI/ISO C标准所列出的所有警告。

-wall  允许发出GCC所提供的所有有用的警告。

-MM  输出一个make兼容的相关列表。

-v  显示编译过程中的每一步用到的命令。

-L  指定所用函数库的路径。如果我们所用到的函数库是系统默认的函数库,则不需要指定路径系统的默认的三个函数库是/lib;/usr/lib;/usr/local/lib。如果我们使用的函数不在这默认库中,就要用到-L选项了。

例如:

#gcc –o mytest mytest.c –L /home/zsb/lib

 

    以上仅仅是一些常用的选项含义,其他一些选项,如内核模块编译时用到的GCC选项,我们将在以后的章节用到它们时再详细介绍。
http://blog.chinaunix.net/u/26619/showart_216071.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值