第7章Linux编程简介
ARM 应用系统设计第7章 Linux编程简介 佘黎煌 东北大学信息科学与工程学院 电子信息工程研究所 嵌入式Linux概况 现在 Linux 广泛用于各类计算应用,不仅包括 IBM 的微型 Linux 腕表、手持设备(PDA 和蜂窝电话)、因特网装置、瘦客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。 嵌入式Linux概况 Linux操作系统开放源代码,可以裁剪内核,并已在x86、Alpha、Sparc、MIPS、PPC、Motorola、NEC和ARM等硬件平台上稳定、高效地运行。 Linux操作系统作为一种多任务、稳定可靠、内核可裁剪的系统,是开发嵌入式软硬件产品的优秀软件平台。 嵌入式Linux是一种开放源码、软实时、多任务的嵌入式操作系统。 Linux入门需要掌握的内容 Linux 环境的使用 会使用VI编辑器 掌握一些基本的命令 Linux编程需要掌握的内容 GNU GCC编译工具 进程 文件操作 信号处理 消息管理 线程操作 网络编程 Linux 操作系统界面 在Linux系统中打开终端的方式有以下两种: 种是在桌面上依次单击“主程序→系统工具→终端”可打开如图2-1的终端窗口;另一种是在Linux桌面上单击鼠标右键,从弹出的快捷菜单中选择“终端”命令,也可打开终端窗口。 Linux入门需要掌握的内容 GNU GCC编译工具 进程 文件操作 信号处理 消息管理 线程操作 网络编程 Linux 下C代码的编译 开发工具GNU 的介绍 GNU 软件包括C 编译器GCC,C++编译器G++,汇编器AS,链接器LD,二进制转换工具(OBJCOPY,OBJDUMP),调试工具(GDB,GDBSERVER,KGDB)和基于不同硬件平台的开发库。 在GNU GCC 支持下用户可以使用流行的C/C++语言开发应用程序,满足生成高效率运行代码的需求 Linux 下C代码的编译 /******************************************* * File Name: hello.c * Description:introduce how to compile a source file with gcc ******************************************** #include void main() { printf("Hello world\n"); } $ gcc -o hello hello.c Linux 下C代码的编译 GCC 是一个多目标的工具。GCC 最基本的用法是: gcc [options] file... , 其中的option 是以“-”开始的各种选项,file 是相关的文件名。在使用GCC 的时候,必须要给 出必要的选项和文件名。GCC 的整个编译过程,实质上是分4 步进行的,每一步完成一个特定的工作,这4 步分别是:预处理、编译、汇编和链接。它具体完成哪一步,是由GCC 后面的开关选项和文件类型决定的。 Linux 下C代码的编译 GCC 编译器有许多选项,但对于普通用户来说只要知道其中常用的几个就够了。在这里列出几个最常用的选项。 -o 选项表示要求编译器生成指定文件名的可执行文件。 -c 选项表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由.c 或.cc 变成.o 的目标文件。 -g 选项要求编译器在编译的时候提供以后对程序进行调试的信息。 -E 选项表示编译器对源文件只进行预处理就停止,而不做编译、汇编和链接。 -S 选项表示编译器只进行编译,而不做汇编和链接。 -O 选项是编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高。 -Wall 选项指定产生全部的警告信息。 gcc -Wall -O -g -c main.c -o main.o Linux 下C代码的编译 GNU Make 是负责从项目的源代码中生成最终可执行文件和其他非源代码文件的工具。 $ make -f makefilename makefile 的例子。 executable : main.o io.o gcc main.o io.o -o executable main.o : main.c gcc -Wall -O -g -c main.c -o main.o io.o : io.c gcc -Wall -O -g -c io.c -o io.o 第一行称之为规则,第二行是执行规则的命令,必须要以tab 键开始 Linux 下C代码的编译