当前位置:
文档之家› linux程序设计基础ppt
linux程序设计基础ppt
.c c语言源文件
.h c语言头文件
.i 已经预处理的源文件 .o 编译后的目标文件
.s 汇编语言源代码文件
Gcc编译过程 :
.o目标文件
源 程 序 预处理
汇编
组译
链接
(*.c)
可执行文件 ELF格式
预处理器 汇编器 组译器 连接器
gcc的使用格式如下:
gcc [options] [filenames]
C语言的应用
进行底层的开发:
如内核开发及基于linux的嵌入 式开发。
进行顶层的开发:
如linux下的应用程序的开发
-
2.1 Linux下 c 程序开发
一个完整的开发工具应该包括: 编辑工具:vi编辑器
集成开发 环境IDE
Kylix Kdevelop RHIDE
编译工具:gcc 调试工具: gdb
进入命令状态
3)末行模式:
在该模式下,vi编辑器实现文件的保存和退出。
命令
:q :q! :w :w! :wq / :x :x! :w File :w! File :r File
功能
(Quit)退出没有被修改的文件 (若文件被修改了而没有保存,则此命令无效)
强制退出,且不保存修改过的部分 (Write)保存文件,但不退出
gcc –o test.o –c test.c gcc –c test.c gcc –c test.c -o test.o 仅把源代码编译为目标代码而跳过连接,优点:
当编译多个c程序时速度更快,易于管理。
gcc –WALL –o test test1.c test2.c test3.c 有多个源文件生成 test,不产生警告信息
(Undo)取消上一次操作(即恢复功能)
2)插入模式:
在该模式下,vi编辑器进入编辑状态: 状态命令
命令
a i o ESC
功能
(Append)进入编辑状态,从当前光标之前的位置开始插入 键盘输入的字符 (Insert)进入编辑状态,从当前光标之后的位置开始插入 键盘输入的字符 (Open)进入编辑状态,并插入一新行,光标移到该新行的 行首,以后键盘输入的字符将插入到光标位置
vi编辑器有三种工作模式:
编辑 hello.c
命令行模式 插入模式 底行模式
1)命令行模式:
用户在用vi编辑文件时,最初进入的一般模式, 此时键盘输入当做命令。在该模式中可以进行光 标移动、删除、复制、粘贴等操作,但是无法编 辑文字。
光标命令
命令 h j k l :N 1G G
功能
方向键,向左移动光标一个字符的位置,相当于键“←” 方向键,向下移动光标到下一行的位置,相当于键“↓” 方向键,向上移动光标到上一行的位置,相当于键“↑” 方向键,向右移动光标一个字符的位置,相当于键“→” 移动光标到第N行(N待定) 移动光标到文件的第1行 移动光标到文件的最后1行
当使用gcc时,gcc会完成预处理、编译、汇编和 连接。前三步生成目标文件,连接时,把生成的目 标文件链接成可执行文件。gcc可以针对支持不同的 源程序文件进行不同处理,文件格式以文件的后缀 来识别。
gcc -o 目标文件名 源文件名(.c形式的文件) 如 gcc –o hello hello.c
./可执行文件名 进行执行文件
gcc –g –o hello hello.c 编译生成可执行连接文件hello同时生成供调试
的信息。
使用优化选项
当用gcc编译C代码时,它会试着用最少的时间 完成编译并且使编译后的代码易于调试. 易于调试意 味着编译后的代码与源代码有同样的执行次序,编 译后的代码没有经过优化。有很多选项可用于告诉 gcc,在耗费更多编译时间和牺牲易调试性的基础上, 产生更小更快的可执行文件。这些选项中最典型的 是-O和-O2选项。
大多数Linux软件是经过自由软件基金会提供 的GNU公开认证授权的,因而通常被称作GNU软件。 GNU软件免费提供给用户使用,并被证明是非常可 靠和高效的。
Linux 程序设计基础
1、Linux下c程序开发 2、Linux下的 shell 编程
Linux下的C语言
C语言是一门“中级语言”,是汇编语言和高 级语言过渡的一种语言,但是它既具有高级语言简 单易懂、灵活方便的特点,同时,他又具有汇编语 言的执行高效和可对硬件直接操作的特点。
-O选项告诉gcc对源代码进行基本优化。这些优 化在大多数情况下都会使程序执行的更快。
Linux 安装时 完成了这些
函数库及系统头文件:
配置、项目管理工具
Linux下 c 程序的开发过程:
➢使用vi等编辑工具编写源程序 ➢保存为*.c ➢使用gcc编译成二进制可执行文件 ➢./文件名 执行 ➢有问题可以用gdb进行调试
一、编辑工具:
在Linux下编程,你不再拥有集成化环境,你可 以使用类似于记事本的工具---经典的vi来编辑源程序。 当然,还有更高档一些的,如joe、emacs等。总之, 编辑程序与编译工作是分开的。
强制保存文件,但不退出 (Exit)保存文件并退出
强制保存文件并退出 另存为File给出的文件名,不退出 强制另存为File给出的文件名,不退出 (Read)读入File指定的文件内容插入到光标位置
2、编译工具:gcc
gcc –v 查询gcc的版本号
Байду номын сангаас
gcc是gnu推出的功能强大性能优越的多平台 编译器,gcc能将c、c++、Fottran等语言源文件进 行编译、连接生成可执行文件。gcc支持下面后缀 名的文件:
第二章 Linux 程序设计基础
本章学习目标
通过对本章的学习,读者应该掌握以下主要内容:
Linux编程风格 Linux下使用GNU cc开发应用程序 Linux程序的调试
1.概述
1.1 Linux应用软件开发:
Linux开发具有活跃的开发环境,Linux开发工 作一般是由多个Linux用户共同完成一个项目的。开 发工作完成后,该软件就被放到Internet站点上,任 何用户都可以访问和下载它。
编辑命令
命令
[N]x [N]dd [N]yy
p u
功能
(Expurgate)删除从光标位置开始的连续N个字符(并复制 到编辑缓冲区) (Delete)删除从光标位置开始的连续N行(并复制到编辑 缓冲区) (Yank)复制从光标位置开始的连续N行到编辑缓冲区
(Put)从编辑缓冲区复制文本到当前光标位置(即粘贴)