Linux之编写用户层程序


发现一些同学在学一门程序语言时,往往花很长的时间去学习如何使用一个编译工具。 实 在是令人很纠结呀 。殊不只编译工具何其多也,而且在不断的淘汰,就我们知道的c 编译工具就有(Turboc ,Vc ,Vim,ADS.......)如果我们花大量的时间用在如何去精通它们,那将是很大的一个悲剧。我们应该把大量的时间用在如何学会一个语言这才是至关重要的。希望大家只要对工具有个大概了解就行了。平时,用这些工具时如果有问题可以查查资料就行了。

一.如何在Linux下编写程序:

1.一般,在Linux下编程用的最多的时vim和vi。那么如何在vim中编写c程序呢。

还是以那个最简单的例子来看看在vim下编写C程序的过程----用C程序在终端打印出Hello World。

第一步:在终端输入命令:vim  文件名.c

实例:  vim  hello.c ( hello.c就是编写程序是的一个源程序名)

第二步: 当输入vim hello.c后我们就进入了编程界面,现在我们就可以编写自己的 C程序了。首先我们要在键盘上按下“i“ 键就可以输入字符了

#include<stdio.h>

int main()

{

printf("Hello World\n");

return 0;

}

第三步:程序写完后就可以保存了,那么如何在vim 下保存程序呢

一般有三种命令:wq  和   q  和  q!  (注意此处都是小写字母)

a.wq :就是保存退出

b q:不保存退出

c  q!:强行,退出。

所以我们用命令: wq 来保存程序退出

第四步:一切搞定后,我们就来对程序进行编译,链接。

我们在Linux下一般用gcc对程序进行编译(注:gcc 只能对用户层程序就行编译,不能对内核态程序进行编译,链接)

gcc  文件名.c   -o   文件名1(注:文件1表示编译后的可执行文件名字,可以随意。不过一般和源程序文件名字相同)

函数实例:

gcc   hello.c     -o    hello

通过这条命令后 系统就把hello.c编译链接成可执行文件  hello

第五步:形成可执行文件后,怎么让它执行呢

可以通过命令: ./可执行文件名(注: ./表示当前目录)

函数实例:./hello

执行完此条命令后就可以看到程序的执行结果了。

二.编程时一些常用的gcc命令

1> objdump -d tige.o 反汇編(objdump   表示  反汇编)

2>gcc -c tiger.c 生成tiger.o文件

3>gcc -S tiger.c 生成tiger.s文件    

4>gcc  tiger.o -o tiger     生成执行文件

Tiger-John说明:

a.此处:tiger是我自己编写程序的名子,大家可以自己所以起名字

b.常见文件后缀表示什么意思;

.c是c原始程序

   .i是经过预处理的

  .S是汇编语言原始程序

  .o是目标文件

  .a时由目标文件构成的档案库文件

Tiger-John补充:

1> 我们在编程时,有时可能会忘记参数的个数,顺序,以及所在的头文件。那么该杂办呢?

有人就说,那就买本Linux大全之类的书,随时查贝。

其实,哥告诉你,你只要在终端输入命令:man +你要查的函数。我们就可以看到这个函数的原型和所属头文件了。

例如我们输入  man  read 就可以看到read 函数的原型和所属头文件了以及如何使用个函数的详细信息都可以在这里查到,不信你就去试试把。

2>有些函数名如mkdir即是Linux的命令,也时系统调用,这时我们可以输入man 2 mkdir获取该函数的原型。

3>对于库函数,可以输入 man 3 <库函数名>就可以看到它的所有信息了

相关内容