Linux 操作系统chap5.ppt_第1页
Linux 操作系统chap5.ppt_第2页
Linux 操作系统chap5.ppt_第3页
Linux 操作系统chap5.ppt_第4页
Linux 操作系统chap5.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章 Linux下C编程,5.1 C语言简介,在80年代末期美国国家标准协会(American National Standards Institute)发布了一个被称为ANSI C的C语言标准。这更加保证了将来在不同平台上的C的一致性。 Linux上可用的C编译器是GNU C编译器, 它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。你能在Linux的发行光盘上找到它,5.2 GNU C 编 译 器,一、基本用法 gcc options filenames 说明: 在gcc后面可以有多个编译选项,同时进行多个编译操作。很多的gcc选项包括一个以上的字符。因此你必须为每个选项指定

2、各自的连字符。例如,下面的两个命令是不同的: 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,警告选项,在gc

3、c中用开关-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,多个源文件生成一个可执行文件,问题:有多个源文件时,如何生成一个可执行文件? 方法1:gcc Wall o mytest test1.

4、c test2.c test3.c 方法2: gcc-Wall -c test1.c gcc-Wall c test2.c gcc-Wall c test3.c gcc o mytest test1.o test2.o test3.o,优化选项,优化选项可以使GCC在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件。这些选项中最典型的是-O和-O2选项。 -O选项:告诉GCC对源代码进行基本优化。这些优化在大多数情况下都会使程序执行的更快。 -O2选项:告诉GCC 产生尽可能小和尽可能快的代码。-O2选项将使编译的速度比使用-O时慢。但通常产生的代码执行速度会更快。,版本选项,-

5、v选项 用户将会得到自己目前正在使用的gcc的版本及与版本相关的一些信息。 gcc -v 将得到如下结果: Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs gcc version 2.7.2 -V 选项 如果安装了多个版本的gcc,并且想强制执行其中的某个版本,可以用命令通知系统用户要使用的版本。 gcc -V2.6.3 -v,调试和剖析选项,使用调试选项后,gcc在进行编译的时候,在目标文件(.o)和创建的可执行文件中插入额外信息,这些额外信息使gdb能够判断编译过的代码和源代码之间的关系。 -g选项:告诉GCC产

6、生能被 GNU 调试器使用的调试信息以便调试你的程序。 例:gcc g o test3 test3.c -pg选项:告诉GCC在你的程序里加入额外的代码,执行时,产生gprof用的剖析信息以显示你的程序的耗时情况。 使用gdb调试工具,命令行如下: 例:gcc ggdb3 o test3 test3.c,其他编译调试工具,g+:C+编译工具 egcs:把对gcc的改进都集成过来 pgcc:对奔腾CPU进行优化 calls:输出文件里的函数调用树图 cprto:读入源文件自动产生函数原型声明 indent:产生美观缩进模式 gprof:程序那个部分执行最费时间 f2c 命令菜单 命令菜单 说明:

7、表示可选,表示可以多次出现 涉及的文件名允许用通配符 例子:c程序test5_1.txt和它的makefile,程序自动维护工具make,make 命令的使用,make option macrodef target make命令默认的文件是makefile(Makefile),也可以用“-f 文件名”指定要解释执行的文件。 make默认从文件指定的第一条规则开始执行,并根据第一条中的依赖文件顺次执行。也可以通过target直接指定执行的目标。,QT编程简介,Qt是Trolltech公司的产品,Trolltech是挪威的一家软件公司,主要开发两种产品: 一种是跨平台应用程序界面框架 另外一种就是

8、提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备,QT编程简介,Qt 是一个多平台的C+图形用户界面应用程序框架,它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt 是完全面向对象,很容易进行扩展,并且允许真正的组件编程。 1996 年开始,Qt 正式进入商业领域,它成为了全世界范围内数千种成功的应用程序的基础。Qt 同时也是流行的Linux 桌面环境KDE 的基础,QT编程简介,Qt 目前支持以下平台: MS/Windows - 95、98、NT 4.0、ME、XP、2000、2003(新版Qt 兼容.NET) Unix/X11 - Linux、Su

9、n Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX 和其它很多X11 平台 Macintosh - Mac OS X Embedded - 有帧缓冲(framebuffer)支持的Linux 平台。,QT编程简介,Qt 有以下几个版本: Qt 企业版和Qt 专业版 提供给商业软件开发。它们提供传统商业软件发行版并且提供免费升级和技术支持服务。 Qt自由版是Qt仅仅为了开发自由和开放源码软件 提供的Unix/X11 版本。 Qt/嵌入式自由版是Qt为了开发自由软件提供的嵌入式版本。在GNU通用公共许可证下,它是免费的。,QT编程例子,输入 des

10、igner 打开qt设计器 运行Qt Designer,点击菜单File-new,新建一个项目,QT编程例子,这里选择C+ Project,确定。接下来会提示项目保存位置 选择保存路径和文件名,确定。,QT编程例子,选择菜单File-new,新建一个窗口,选择Dialog,确定,QT编程例子,设置Form1 的Caption 为“我的程序”,在Property Editor 设置窗口属性,如果你的IDE 上看不到Property Editor,请通过菜单Windows-Views,将Property Editor/Signal Handlers 选上。 接着在窗口上放一个TextLabel,选

11、择Toolbox 上的Common Widgets 上的TextLabe, 再添加一个按钮,PushButton,,QT编程例子,将textLabel1 的Text 设为“Hello World”,pushButton1 的Text 设为“关闭”。接下来 为关闭按钮添加事件,选择菜单Edit-Connections.,弹出View and Edit Connections窗口,点击按钮“New”在新增项中,Sender 选择pushButton1,Signal 选择Clicked(),Receiver选择Form1,Slot 选择Close(),确定然后保存,,QT编程例子,到这里,基本就快完成我们的Hello World 了,我们还需要一个main.cpp 文件,点击菜单 File-new,选择C+ main file(main.cpp) 文件名filename:main.cpp,程序主窗Main-Form:Form,确定,Qt 会自动生成main.cpp 文件代码,,QT编程例子,到这里我们的第二个Hello Worl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论