linux下C编程编程环境.ppt
linux下C编程,编程环境,linux操作系统,linux是一种可以自由传播和免费使用的类似于UNIX的操作系统。它可以在各种硬件平台上运行并且开放全部的源代码。linux具备UNIX的全部特性:多任务、多用户、安全、稳定和高效。linux内核大部分由C语言编写,可以免费使用,并允许大家对其进行修改和完善。linux内核官方网站:,虚拟机,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。Vmware的特点 1.可同时在同一台PC上运行多个操作系统,每个OS都有自己独立的一个虚拟机,就如同网络上一个独立的PC。2.在Windows NT/2000上同时运行两个VM,相互之间可以进行对话,也可以在全 屏方式下进行虚拟机之间对话,不过此时另一个虚拟机在后台运行。3.在VM上安装同一种操作系统的另一发行版,不需要重新对硬盘进行分区。4.虚拟机之间共享文件、应用、网络资源等。5.可以运行C/S方式的应用,也可以在同一台计算机上,使用另一台虚拟机的所有资源。用VMware安装Linux:,linux基本使用,linux Shell程序:是一个命令解释器。命令提示符:登录用户名主机名 当前目录$或#Shell命令基本格式:命令名 选项.linux终端:可以对系统进行控制的输入输出实现。又称为虚拟控制台。关机命令:halt、poweroff、shutdown、init 0reboot init 6 init 5,linux目录结构,linux常用命令,pwd:查看当前目录cd:改变当前目录ls:显示目录或文件信息cat:查看文件内容cp:复制文件rm:删除文件或目录mv:移动或重命名文件mkdir:创建目录man:命令帮助手册,C语言,C程序结构,#include int main(int agrc,char*argv)int x,y,sum;/定义了3个变量 x=100;y=200;sum=x+y;printf(“sum is%dn”,sum);/输出结果 return 0;,vim文本编辑器,vi是一种模式编辑器。vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。vi三种工作模式。,程序编译过程,#include文件,库文件,源文件,#编译器,目标文件,链接器,可执行文件,其他用户生成的目标文件,GNU C 编 译 器,一、基本用法 gcc options filenames说明:在gcc后面可以有多个编译选项,同时进行多个编译操作。很多的gcc选项包括一个以上的字符。因此你必须为每个选项指定各自的连字符。例如,下面的两个命令是不同的:gcc-p-g test1.c gcc-pg test1.c当你不用任何选项编译一个程序时,GCC将会建立(假定编译成功)一个名为a.out的可执行文件。,基本编译选项,-o选项 你能用-o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out。例:gcc o count count.c-c选项:告诉GCC仅把源代码编译为目标代码而跳过汇编和连接的步骤。这个选项使用的非常频繁,因为它使得编译多个C程序时速度更快并且更易于管理。缺省时GCC建立的目标代码文件有一个.o的扩展名。例:gcc c test2.c,警告选项,在gcc中用开关-Wall控制警告信息,使用示例命令如下:gcc Wall-o test3_1 test3_1.c,查找选项,gcc一般使用默认路径查找头文件和库文件。如果文件所用的头文件或库文件不在缺省目录下,则编译时要指定它们的查找路径。-I选项:指定头文件的搜索目录例:gcc I/export/home/st o test1 test1.c-L选项:指定库文件的搜索目录例:gcc L/usr/X11/R6/lib o test1 test1.c-lm,多个源文件生成一个可执行文件,问题:有多个源文件时,如何生成一个可执行文件?方法1:gcc Wall o mytest test1.c test2.c test3.c方法2:gcc-Wall-c test1.cgcc-Wall c test2.cgcc-Wall c test3.c gcc o mytest test1.o test2.o test3.o,优化选项,优化选项可以使GCC在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的是-O和-O2选项。-O选项:告诉GCC对源代码进行基本优化。这些优化在大多数情况下都会使程序执行的更快。-O2选项:告诉GCC 产生尽可能小和尽可能快的代码。-O2选项将使编译的速度比使用-O时慢。但通常产生的代码执行速度会更快。,版本选项,-v选项 用户将会得到自己目前正在使用的gcc的版本及与版本相关的一些信息。gcc-v 将得到如下结果:gcc-V 选项 如果安装了多个版本的gcc,并且想强制执行其中的某个版本,可以用命令通知系统用户要使用的版本。gcc-V2.6.3-v,共享文件,虚拟机工具虚拟机内操作系统网络配置桥接NATHostOnlyVsftp,