Linux 程序设计入门

原创 2004年11月02日 11:58:00
这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识。

· 所需具备的背景知识
· 开发所需的基本环境
· 获得帮助的途径
· 通过一个实例了解基本步骤
· 各种工具使用和系统学习的资料推荐

本文只是做一个概述,对一些最基本的东西进行些汇总,编程涉及到很多的工具,需要大家自己由浅入深的学习。



首发于 www.loveunix.net 2004-04-07
Modified 2004-10-14   by Carol

Prerequisite 先决条件:

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

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

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

Environment 所需环境:

1. Linux/ Unix 的操作系统,也可以使用windows下的cygwin软件来模拟Linux,但是不能保证实现所有的功能。也可以考虑在Windows上使用vmware安装一个Linux环境。
关于 cygwin 和 vmware 我们将在后面介绍。

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

2. 必备的开发工具:

1) 输入程序需要一个编辑器。常用的有 vi , emacs. 在命令行上输入 vi, emacs, … 就可以进入编辑环境了。
要了解详细的使用,推荐看无双写的 vi 教程,我平时使用的是emacs,所以也整理了一些 关于 EMACS 的参考资料.

2) C语言的编译器。常用的是GNU的c语言编译器 gcc(编译 C 程序), g++(编译 C++程序)。

具体学习 gcc / g++ 的使用。
编写大型程序的时候,手动输入一条条的gcc命令非常麻烦,这时候可以使用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 <stdio.h>               // 如果你看不懂这个函数,就去好好的看c语言的书
int main()
{
    printf(“Hello World.n”);    // Emacs环境下,按下 Tab 键,有自
动缩进功能
   
    exit(0);
}

完成输入后,按住CTRL 键,按下 x, 再按下 c , 最后松开 CTRL (通常书上表达成 Ctrl-x Ctrl-c 或者 C-x, C-c)。 程序保留并退出emacs 环境。


2. 编译,链接,运行
 
$ gcc –o hello hello.c
$ ./hello                         // ./ 指明了所执行程序的路径为当前目录
Hello World.
$

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

3. 调试

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

$ gcc –g –o hello hello.c
$ gdb hello                        // 进入 gdb 调试环境


4. CVS版本控制软件 —— 协同工作和保留版本的工具

学习Linux程序编程的好书推荐:
  1. Linux 程序设计
  2. UNIX 环境高级编程,很有名,俗称 APUE
  3. Advanced Linux Programming
  4. the Art of Unix Programming

以上书籍网上都有下载,建议选择适合自己的买回来系统学习。

网上也有不少的资料整理

开发工具的学习:
 
cygwin     WinCVS简明操作指南 by 陈先波
 
vi               vim初级教程 by 无双
emacs      emacs 使用循序渐进 by Carol
 
gcc
makefile  跟我一起写 Makefile by 陈皓
gdb
 
推荐学习站点:

程序设计入门——C语言 翁恺 第2周编程练习

1 时间换算(5分)题目内容:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时...
  • codeforcer
  • codeforcer
  • 2016年10月27日 21:27
  • 1191

机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT) 文章摘要

ROS_1
  • blexsantos
  • blexsantos
  • 2017年02月21日 18:55
  • 513

程序设计基础—入门知识点(一)

1.Javascrpt是一种脚本语言,所有的计算机高级语言分为两种,编译型语言和解释性语言。  2.计算机认识的语言只有机械语言(二进制)。所以要将高级语言转化成机械语言,转化的形式分为两种...
  • qq_41055414
  • qq_41055414
  • 2017年11月15日 18:17
  • 54

Linux程序设计-读书笔记1

chap 1 1.链接库分为静态链接库.a和共享库.so。 2.静态链接库示例: hello.c ---------------------------------------- #incl...
  • conanswp
  • conanswp
  • 2015年09月01日 22:04
  • 843

linux程序设计第四版中文pdf下载地址

下载地址:http://1000eb.com/8ajv   本人已经下载了两次,验证通过,确实不错。...
  • wj_j2ee
  • wj_j2ee
  • 2013年01月28日 14:26
  • 4407

程序设计入门——C语言 翁恺 第6周编程练习

1分解质因数(5分)题目内容:每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。现在,你...
  • codeforcer
  • codeforcer
  • 2016年11月22日 12:45
  • 1687

如何进入程序设计的领域----【转自蔡学镛专栏】

 这一阵子,软件、网络大红,许多人对程序设计开始感兴趣,我收到好一些 Sleepless in Java专栏读者的来信,不少读者共同的问题是:如何进入程序设计的领域?所以我选这个主题当作 Sleepl...
  • clarkcpp
  • clarkcpp
  • 2007年04月16日 10:54
  • 507

项目实践精解:C#核心技术应用开发

前 言 学习任何技术都要从基础开始,这本书就是讲解C#核心技术的基础教材。读者如果简单调研一下就不难发现,市面上最多的就是这类C#基础类教材。那么,我们还有没有必要再多写一本没有特色、枯燥乏味的书呢...
  • broadview2006
  • broadview2006
  • 2010年09月21日 17:06
  • 1354

linux程序设计——个人总结

linux程序设计——个人总结     到今天为止,《linux程序设计》学习基本完成了。从五月下旬开始接触linux,学习安装Ubuntu14.04,六月份开始学习《linux程序设计》,实习考试之...
  • yiranant
  • yiranant
  • 2015年07月27日 15:04
  • 1096

Linux程序设计(Linux shell编程的例子:总结)

各位看官们。。。“咱们今天还是接着上一回的内容列举具体的例子给大家。闲话休说,言归正转".啊?这 是谁呀,我还没有说,怎么把我想说的话都说出来了?看来台下的看官已经习惯我的风格了,哈哈。各位 看官...
  • talk_8
  • talk_8
  • 2015年05月01日 19:11
  • 1297
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux 程序设计入门
举报原因:
原因补充:

(最多只允许输入30个字)