|
讲义下载:http://263.aka.org.cn/Lectures/001/Lecture-1/Lecture-1.zip<br>tgz:http://263.aka.org.cn/Lectures/001/Lecture-1/Lecture-1.tgz<br><br><br>第一讲 Linux编程入门之 C 语言环境 <br>整体思路<br>本讲是编程系列讲座的第一讲,主要讲述 Linux 平台上的 C 语言环境,包括编译器、 调试器、Make、Diff、Patch 等。其目的是通过介绍 Linux 上 C 语言编程的基本工具 以及一些新手必须掌握的技巧,迅速引导新手入门,以避免走弯路。<br>首先对 Linux 作一简单介绍,然后通过讲解 Linux 上进行编程的常识以及典型场景的 演示,使大家对 Linux 上的程序开发有一个感性认识。在此基础上,重点讲述 Linux 上 C 语言编程的基本工具,包括编译器和调试器,主要是它们的重要选项和基本用法。 接下来讲述在项目组织和开发过程中非常重要的工具,即 GNU make 和 makefile。 最后讲述 diff/patch 工具。 <br><br>主要内容<br> 什么是 Linux<br><br> Linux 的发展历史以及关键人物<br><br> Linux 与其他操作系统<br><br> Linux 的编程常识<br><br> Linux 上进行程序开发的典型场景<br><br> 程序和脚本<br><br> Linux 上的 C 编译器和调试器<br><br> GNU make 和 makefile<br><br> 实用工具<br><br>各部分要点<br> 1.1 什么是 Linux<br><br>Linux 的发音 <br>Linux 的官方定义 <br>OSIX 及其重要地位 <br>GNU 和 Linux 的关系 <br>GPL 及其主要内容 <br>Linux 的主要发行版 <br> 1.2 Linux 的发展历史以及关键人物<br><br>UNIX, GNU, Linux 的关键人物及贡献 <br>Linux 发展的重要里程碑 <br> 1.3 Linux 与其他操作系统<br><br>Linux 与主要 UNIX 系统之间的关系 <br>Linux 与 Windows 操作系统 <br> 1.4 Linux 的编程常识<br><br>标准 (ANSI C, POSIX, SVID, XPG, ...) <br>函数库和系统调用 <br>在线文档 (man, info, HOW-TO, ...) <br>C 语言编程风格 <br>库和头文件的保存位置 <br>共享库及其相关配置 <br> 1.5 Linux 上进行程序开发的典型场景<br><br>控制台上的开发场景 <br>X Window 上的开发场景 <br> 1.6 程序和脚本<br><br>程序:编写, 编译, 调试和执行 <br>脚本:编写, 执行 <br> 1.7 Linux 上的 C/C++ 编译器和调试器<br><br>运行 gcc/egcs <br>gcc/egcs 的主要选项 <br>gdb <br>gdb 的常用命令 <br>gdb 使用范例 <br>其他程序/库工具 (file, ar, objdump, nm, size, strings, strip, ...) <br>创建和使用静态库 <br>创建和使用共享库 <br>使用高级共享库特性 <br> 1.8 GNU make 和 makefile<br><br>GNU make <br>makefile 基本结构 <br>makefile 变量 <br>GNU make 的主要预定义变量 <br>隐含规则 <br>makefile 范例 <br>运行 make <br> 1.9 开发中常用的工具<br><br>正则表达式 <br>压缩和归档工具 (gzip, bzip2, tar, ...) <br>搜索和排序 (grep, find, sort, ...) <br>文件编辑 (sed, tr) <br>文件比较 (cmp, comm, diff, patch, ...) <br>其他 (ed, vim, emacs, ...) <br>练习<br>如果还没有安装 Linux 系统的话,请安装一种 Linux 发行版,并掌握 Linux 的基本使用。 <br>编写一个 Bash 脚本,用来将当前目录树中(递归)所有 DOS 格式的文本文件转换为 UNIX 格式的文本文件,新文件名称添加后缀 .unix。 <br>试着将自己在 DOS 或 Windows 下编写过的程序移植到 Linux,编译通过并测试正确性。 <br>从网上下载 CCE 或 MiniGUI 的源代码,然后研究其 Makefile 的结构。 <br>用 C 语言或自己喜欢的语言实现第 3 题。 <br>参考书目<br>hil Cornes, The Linux A - Z, Prentice Hall Europe, 1997.<br>(中译本已由电子工业出版社出版, 童寿彬等译) <br>Naba Barkakati, The Linux Secrets, IDG Books Worldwide, Inc. 1999.<br>(中译本已由电子工业出版社出版, 魏永明等译) <br>John Goerzen, The Linux Programming Bible, IDG Books Worldwide, Inc. 1999.<br>(中译本已由电子工业出版社出版, 魏永明等译) <br>进一步读物<br>W. Richard Stevens, Advanced Programming in the UNIX Environment, Chpater 1 and Chapter 2. <br>反馈<br>本讲由魏永明讲解。欢迎任何意见和建议,可发 email: ymwei@mail.minigui.org 与魏永明联系。 |
|