红联Linux门户
Linux帮助

Linux 下 C 编程从零开始

发布时间:2005-05-10 00:11:21来源:红联作者:thej
这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识。

? 所需具备的背景知识
? 开发所需的基本环境
? 获得帮助的途径
? 通过一个实例了解基本步骤


Prerequisite 先决条件:
在Linux上编写 C 程序,至少要熟悉以下两方面的基础知识:

1. C语言的编程基础,至少要知道一些基本的语法,控制流程等编程常识。
对常用的标准 C 函数库有常识性的了解。

2. 对Linux/UNIX 的操作有常识性的了解,掌握常用的shell 命令,如 ls, cat, cp, mkdir …etc.


Environment 所需环境:

1. Linux/ Unix 的操作系统,也可以使用windows下的cygwin。

我们这里讨论的都是通过shell命令行进行操作的。那如果进入了图形界面的Linux 怎么办呢?只要打开一个终端命令,就和命令行环境完全一样了(打开开始菜单可以找到终端命令)。

2. 必备的开发工具:

1) 输入程序需要一个编辑器。常用的有 vi , emacs. 在命令行上输入 vi, emacs, … 就可进入编辑环境
关于 vi
关于 EMACS

2) C语言的编译器。常用的是GNU的c语言编译器 gcc(编译 C 程序), g++(编译 C ++程序)。
关于 gcc / g++
关于 makefile >>>> 用于简化编译过程
这里有一片入门文章 Linux下C语言编程基础知识,可以先看一下

3) 调试程序的常用工具:gdb.
关于 gdb


Get help获得帮助:

关于 Linux 的文档是非常丰富的。最快捷,方便,全面的资料就在你的机器里,不要浪费。

在命令行上输入shell命令 man 或者 info:
$man gcc >>>> 这个命令可以获得GNU 的C语言编译器的文档。当然,他们是英文的。
关于 man
关于 info

网络上的资源也很多,多得以至于不知道什么才是自己最需要的。
关于如何获得有价值的信息

看一下 loveunix 上的相关资源 >>>>

无双补充的一些Linux下入门编程资料 >>>>

 

Basic steps 基本步骤:

1. 输入源代码
2. 编译,链接,运行
3. 调试程序

我们从最基本的 hello world 程序开始,实际操作一下:

1. 输入源代码
引用

$ emacs hello.c >>>> 进入emacs 编辑器环境

#include >>> 如果你看不懂这个函数,就去好好的看c语言的书
int main()
{
printf(“Hello World.\n”); >>>> Emacs环境下,按下 Tab 键,有自动缩进功能
exit(0);
}


完成输入后,按住CTRL 键,按下 x, 再按下 c , 最后松开 CTRL。 >>>> 程序保留并退出emacs 环境。

2. 编译,链接,运行

引用
$ gcc -o hello hello.c
$ ./hello >>>> ./ 指明了所执行程序的路径
Hello World.
$

一个linux平台上的c程序开发已经完成咯

3. 调试

如果要使用 gdb 调试程序,那么在上一步编译的时候,记得加上 -g 选项


引用
$ gcc -g -o hello hello.c
$ gdb hello >>>> 进入 gdb 调试环境

 

4. CVS版本控制软件 ---- 协同工作和保留版本的工具
关于 CVS
文章评论

共有 134 条评论

  1. ssc 于 2007-01-06 11:52:19发表:

    谢了

  2. 德里克 于 2007-01-05 15:52:06发表:

    :0)1 能更详细点吗

  3. jakepain 于 2007-01-05 11:29:40发表:

    论坛好多理论性文章我都不懂
    老兄的例子很好
    适合初学者

  4. Emperor 于 2006-12-23 10:30:26发表:

    Linux下的c语言很好呀

  5. ljcheng200888 于 2006-12-04 15:22:08发表:

    锟斤拷锟斤拷:
    原帖由 HR 于 2005-6-18 16:10 发表
    ”1. C语言的编程基础,至少要知道一些基本的语法,控制流程等编程常识。
    对常用的标准 C 函数库有常识性的了解。“。。。。。我想买本书来看看,请问哪本书较适合0基础的读者学习C语言。当然网上也有这方面的 ...

    是啊,呵呵,我也想买一本0基础的c语言教材,那位高人能给推荐一本啊?

  6. wjyongjiang 于 2006-12-04 00:18:41发表:

    fjdklsafij

  7. weiweiwei21 于 2006-12-03 19:49:10发表:

    顶

  8. hylingzhi 于 2006-12-03 16:20:18发表:

    hao ding

  9. 72.232.206.* 于 2006-11-29 09:54:21发表:

    Good design!
    http://wzukekab.com/zirv/pqiy.html | http://pybpkqcr.com/yauj/nfzu.html

  10. 72.36.178.* 于 2006-11-29 09:54:16发表:

    Thank you!
    My homepage | Please visit

  11. 72.36.178.* 于 2006-11-29 09:54:12发表:

    Thank you!
    My homepage | Cool site

  12. spacesky 于 2006-11-28 15:11:20发表:

    :0L
    和在WINDOWS下有很大区别的啊

  13. resky 于 2006-11-27 18:24:55发表:

    上去

  14. zouyyong782211 于 2006-11-23 15:09:09发表:

    3k

  15. lovefengzi 于 2006-11-21 11:24:47发表:

    thanks

  16. guixiaolan 于 2006-11-18 15:03:25发表:

    一堆参数不知道怎么用?
    还不如用TC

  17. chunyu 于 2006-11-16 16:11:59发表:

    一直困惑Linux下编程,谢谢啊

  18. mail11758332 于 2006-11-15 16:40:34发表:

    :0L

  19. Color兔 于 2006-11-15 14:23:50发表:

    学习中...

  20. rainofwind 于 2006-11-09 11:44:19发表:

    :0L

  21. wymam 于 2006-11-08 17:57:11发表:

    以前在windows下学的不是很好,但是不知道现在来学会不会迟了呢!

  22. 于 2006-11-06 05:48:34发表:

    我顶,写的真好,通俗易懂,我刚用linux:0L

  23. 李一 于 2006-10-24 08:53:39发表:

    谢谢 :0L

  24. davidpike 于 2006-10-23 15:00:54发表:

    正想了解一下这方面的知识呢!

  25. hurt90 于 2006-10-23 09:10:34发表:

    不过,我觉得还是vim编程比较好,虽然是全字符界面,

  26. open.wood 于 2006-10-22 20:59:27发表:

    顶

  27. 于 2006-10-21 12:01:55发表:

    好文

  28. ly8683783 于 2006-10-21 09:47:54发表:

    有没有关于C库函数的书啊??介绍一本腻

  29. jzlk 于 2006-10-19 15:08:11发表:

  30. xinlaoda 于 2006-10-16 15:58:56发表:

    想学这方面的知识,可惜基础比较差,能不能推荐些书呢?

  31. yang1993 于 2006-10-15 00:08:49发表:

    顶了

  32. 2410linux 于 2006-10-13 18:24:40发表:

    hao

  33. jamako 于 2006-09-28 09:58:59发表:

    不错,谢谢

  34. 爱无禁言 于 2006-09-27 12:57:37发表:

    哎~~~~~~~小顶一下~~~~~~~!!!!!!!!!!!!!!

  35. 千纸鹤 于 2006-09-27 10:19:32发表:

    好东西

  36. cailiao626 于 2006-08-26 09:47:55发表:

    从零起步

  37. 坏坏大少 于 2006-08-23 21:25:50发表:

    我今天刚装了 LINUX 现在对它还什么都不懂 但 C 还是了解的 看来要好好学学 LINUX 了

  38. forfree 于 2006-08-22 10:33:18发表:

    不顶不行

  39. minny 于 2006-08-21 19:11:15发表:

    有收获~

  40. xiaomao2000 于 2006-04-25 21:32:18发表:

    求助:
    我是一名大四学生,毕业设计是做关于linux操作系统编程,但linux方面我是门外汉,快要答辩了甚是着急,求助各位高手帮忙,我需要两个简单的程序1.基于linux操作系统的内存管理的实验的程序2.基于linux操作系统文件系统管理的实验的程序. 请求哪位好心高手能帮帮我,有相关程序发电子邮件给我,程序越简单越好,最好能把程序放在word里附有程序说明,感激不尽啊!!!!!我的电子邮件是xiaomao19831202@126.com