书签 分享 收藏 举报 版权申诉 / 64
上传文档赚钱

类型Ubuntu-Linux-操作系统(微课版)第九章-CC++编程课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3591795
  • 上传时间:2022-09-22
  • 格式:PPTX
  • 页数:64
  • 大小:2.77MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Ubuntu-Linux-操作系统(微课版)第九章-CC++编程课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Ubuntu Linux 操作系统 微课版 第九 CC 编程 课件
    资源描述:

    1、1 第9章 C/C+编程Ubuntu Linux 操作系统(第 2 版)(微课版)工业和信息化“十三五”人才培养规划教材第9章 C/C+编程2 第9章 C/C+编程能力CAPACITY要求了解Linux平台上C/C+程序的编辑器、编译器和调试器。理解make和Makefile的编译机制,能够使用Autotools产生Makefile。了解GTK+图形用户界面工具包,能够搭建GTK编程环境。了解Qt应用程序开发框架,能够部署Qt编程环境。3 第9章 C/C+编程内容CONTENTS导航使用make和Makefile实现自动编译Linux编程基础基于GTK+的图形用户界面编程基于Qt的图形用户界面

    2、编程4 第9章 C/C+编程9.1 Linux编程基础Emacs编辑器简介Emacs是Editor MACroS(宏文本编辑器)的缩写。Emacs提供一个功能全面的集成开发环境,程序员可以用来编写代码、编译程序、收发邮件。Emacs能够在当前大多数操作系统上运行。可以利用Emacs针对某种程序设计语言的编辑模式来更有效率地完成程序编写任务。5 第9章 C/C+编程9.1 Linux编程基础Emacs编辑器Emacs界面主界面Emacs编辑C源码6 第9章 C/C+编程9.1 Linux编程基础Emacs编辑器Emacs命令同时进行编辑和控制,Emacs需要使用组合键来发出控制命令。Emacs的

    3、所用命令都以组合键加字母组成。理解文件和缓冲区将文件内容放到一个临时性的缓冲区里面,然后再对缓冲区的内容进行编辑。在通知编辑器保存缓冲区的内容之前,存放在磁盘上的原始文件是不会发生任何变化的。7 第9章 C/C+编程9.1 Linux编程基础Emacs编辑器Emacs编辑模式Emacs针对多种文档定义了不同的主模式(major mode)。每种主模式都提供有特殊的Emacs Lisp变量和函数。一个编辑缓冲区只能有一个主模式。退出一个主模式的方法就是进入另一个主模式。Emacs支持次模式(minor mode)。每一个缓冲区能够同时关联多个次模式。C和C+支持编译和调试8 第9章 C/C+编程

    4、9.1 Linux编程基础GCC编译器GCC编译的4个阶段9 第9章 C/C+编程9.1 Linux编程基础GCC编译器静态连接通常对函数库的连接是在编译时(compile time)完成的。将所有相关的目标文件与所涉及的函数库(library)连接合成一个可执行文件。由于所需的函数都已合成到程序中,所以程序在运行时就不再需要这些函数库,这样的函数库被称为静态库(static library)。静态库文件在Linux下的扩展名为.a,称为归档文件(Archive File),文件名通常采用libxxx.a的形式。10 第9章 C/C+编程9.1 Linux编程基础GCC编译器动态连接将函数库的

    5、连接推迟到程序运行时(run time)来实现,就要用到动态连接库(dynamic link library)。Linux下的动态链接库文件的扩展名为.so,文件名通常采用libxxx.so的形式。动态连接库的函数具有共享特性,连接时不会将它们合成到可执行文件中。编译时需通知编译器这些目标文件要用作动态连接库,使用位置无关代码(Position Independent Code,PIC,也译为浮动地址代码),具体使用gcc编译器时加上-fPIC选项。11 第9章 C/C+编程9.1 Linux编程基础GCC编译器编译C程序gcc 选项 源文件编译C+程序使用g+命令来进行C+的编译和连接,它会

    6、自动调用gcc实现编译。g+选项 源文件gcc编译输出选项-E选项:对源文件进行预处理,生成的结果输出到标准输出。-S选项:对源文件进行预处理和编译,也就是编译成汇编代码。-c选项:对源文件进行预处理、编译和汇编,也就是生成目标文件(obj)。12 第9章 C/C+编程9.1 Linux编程基础GCC编译器gcc编译优化选项-O1(或者-O)表示优化生成代码。-O2表示进一步优化。-O3比-O2更进一步优化,包括 inline 函数。-O0表示不进行优化处理。13 第9章 C/C+编程9.1 Linux编程基础GCC编译器gcc其他常用选项-g选项表示生成带有调试信息的二进制形式的可执行文件。

    7、-Wall选项编译时输出所有的警告信息,建议编译时启用此选项。-I选项后跟目录路径参数,将该路径添加到头文件的搜索路径中,gcc会在搜索标准头文件之前先搜索该路径。-L选项后跟库文件参数,用来指定连接声称可执行文件所用的库文件。多个源文件的编译方法多个文件一起编译。分别编译各个源文件再对编译后输出的目标文件进行连接。14 第9章 C/C+编程9.1 Linux编程基础GDB调试器生成带有调试信息的目标代码默认情况下,GCC在编译时没有将调试信息插入到所生成的二进制代码中。如果需要在编译时生成调试信息,可以使用gcc命令的-g或者-ggdb选项。使用gdb命令进行调试获得含有调试信息的目标代码后

    8、,即可使用gdb命令进行调试。在命令行中直接执行gdb命令,或者将要调试的程序作为gdb命令的参数。进入GDB交互界面后即可执行具体的GDB子命令。15 第9章 C/C+编程内容CONTENTS导航使用make和Makefile实现自动编译Linux编程基础基于GTK+的图形用户界面编程基于Qt的图形用户界面编程16 第9章 C/C+编程9.2 使用make和Makefile实现自动编译make工具make通过Makefile文件维护源程序,实现自动编译。make 选项 目标名make命令主要选项:-f 描述文件:指定make编译所依据的描述文件(Makefile)。-n:只显示生成指定目标的

    9、所有执行命令,但并不实际执行。-p:输出Makefile文件中所有宏定义和目标文件描述。-d:使用Debug(调试)模式。-c 目录:在读取Makefile之前改变到指定的目录。17 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile基础Makefile基本语法Makefile文件通过若干条规则来定义文件依赖关系。每条规则包括目标(target)、条件(prerequisites)和命令(command)三大要素。基本语法格式目标.:条件.命令.18 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile基础Makefile示

    10、例#第1部分textedit:main.o input.o output.o command.o files.o tools.occ-o textedit main.o input.o output.o command.o/files.o utils.o#第2部分main.o:main.c def.hcc-c main.cinput.o:input.c def.h command.hcc-c input.coutput.o:output.c def.h buffer.hcc-c output.c19 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile基础Ma

    11、kefile示例command.o:command.c def.h command.hcc-c command.cfiles.o:files.c def.h buffer.h command.hcc-c files.cutils.o:tools.c def.hcc-c tools.c#第3部分clean:rm textedit main.o input.o output.o rm command.o files.o tools.o20 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile基础Makefile示例文件依赖关系链21 第9章 C/C+编程9.2 使

    12、用make和Makefile实现自动编译Makefile基础make基于Makefile的编译机制如果该项目没有编译过,也就是没有生成过目标,那么就根据所给的条件来生成目标,所有源文件都要编译并进行连接。如果该项目已经编译过,生成有目标,一旦条件发生变化,则需要重新生成目标。如果项目的某些源文件被修改,只编译被修改的源文件,并连接生成目标程序。如果项目的某些头文件改变,则需要编译引用了这些头文件的源文件,并连接生成目标程序。make通过比较目标和条件中的文件的修改日期来识别文件是否被修改。如果条件中的文件的日期要比目标中的文件的日期要新,或者目标不存在,那么make就会执行后续定义的命令。22

    13、 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile的高级特性Makefile示例修改#第1部分objects=main.o input.o output.o command.o files.o utils.o#第2部分textedit:$(objects)cc-o edit$(objects)#第3部分main.o:defs.hinput.o:defs.h command.hcommand.o:defs.h command.houtput.o:defs.h buffer.hinsert.o:defs.h buffer.htools.o:defs.h#第4部

    14、分.PHONY:cleanclean:rm edit$(objects)23 第9章 C/C+编程9.2 使用make和Makefile实现自动编译Makefile的高级特性隐式规则自动推导文件以及文件依赖关系后面的命令。变量定义可以定义一系列变量,变量一般都是文本字符串。伪目标伪目标并不是一个文件,只是一个标签。使用通配符make支持通配符:“*”、“?”和“.”,用于代替一系列的文件。文件包含在一个Makefile文件中可以引用另一个Makefile文件。24 第9章 C/C+编程9.2 使用make和Makefile实现自动编译make的工作方式基本功能(1)读入所有的Makefile文

    15、件。(2)读入被include语句嵌入的其他Makefile文件。(3)初始化这些文件中的变量。(4)推导隐式规则,并分析所有规则。(5)为所有的目标文件创建依赖关系链。(6)根据依赖关系,决定哪些目标需要重新生成。(7)执行生成目标的命令。25 第9章 C/C+编程9.2 使用make和Makefile实现自动编译使用Autotools自动产生MakefileAutotools工作原理一个Autotools项目至少需要一个名为configure的配置脚本和一个名为Makefile.in的Makefile模板。实际上并不需要Autotools来建立Autotools包,configure是在最

    16、基本的Shell(sh)上运行的Shell脚本,它检查用户系统获取每个特征,通过模板写出Makefile文件。configure在每个目录中创建所有文件。configure在命令行接受几个选项用于在不同的目录中安装文件。26 第9章 C/C+编程9.2 使用make和Makefile实现自动编译使用Autotools自动产生MakefileAutotools工作原理由configure产生的Makefile文件有点复杂,但很标准。它们定义由GNU标准所需的所有标准目标,常用的目标列举如下。p make或make all:创建程序p make install:安装程序p make distcle

    17、an:删除由configure产生的所有文件27 第9章 C/C+编程9.2 使用make和Makefile实现自动编译使用Autotools自动产生MakefileAutotools工具AclocalAutoscanAutoconfAutoheaderautomake28 第9章 C/C+编程9.2 使用make和Makefile实现自动编译使用Autotools自动产生MakefileAutotools应用示例(1)准备源代码。(2)切换到项目工作目录,执行命令autoscan命令扫描工作目录生成configure.scan文件。(3)将文件configure.scan重命名为config

    18、ure.ac,然后再编辑修改这个配置文件。(4)在项目目录下执行aclocal命令,扫描configure.ac文件生成aclocal.m4文件。(5)在项目目录下执行autoconf命令生成configure文件。(6)在项目目录下执行autoheader命令生成config.h.in文件。(7)在项目目录下创建一个Makefile.am文件,供automake工具根据configure.in中的参数将Makefile.am转换成Makefile.in文件。29 第9章 C/C+编程9.2 使用make和Makefile实现自动编译使用Autotools自动产生MakefileAutotoo

    19、ls应用示例(8)在项目目录下执行automake命令生成Makefile.in文件。通常要使用选项-add-missing让automake自动添加一些必需的脚本文件。(9)在项目目录下执行./congigure命令,基于Makefile.in生成最终的Makefile文件。该命令将一些配置参数添加到Makefile文件中。(10)在项目目录下执行make命令,基于Makefile文件编译源代码文件并生成可执行文件。(11)在项目目录下执行make install命令将编译后的软件包安装到系统中。(12)如果要对外发布,可以在项目目录下执行make dist命令将程序和相关的文档打包为一个压

    20、缩文档。30 第9章 C/C+编程内容CONTENTS导航使用make和Makefile实现自动编译Linux编程基础基于GTK+的图形用户界面编程基于Qt的图形用户界面编程31 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程GTK+简介GTK+是一套跨多种平台的开放源码图形用户界面工具包。GTK+类似于Windows上的MFC和Win32 API、JAVA上的Swing和SWT,是Linux下开发GUI应用程序的主流开发工具之一。GTK+可以用来进行跨平台GUI应用程序的开发。GTK+开发套件基于3个主要的库:Glib、Pango和ATK。GNOME桌面环境以GTK+为基础,为G

    21、NOME编写的程序使用GTK+作为其工具箱。32 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署GTK+编程环境安装GTK+3开发包部署GTK+编程环境首先要提供gcc、g+、gdb、make等编译工具,然后要安装核心的GTK+开发包。执行以下命令安装GTK+3开发包。sudo apt-get install libgtk-3-dev执行以下命令检查是否安装了GTK+3,查看所安装的具体版本。pkg-config-modversion gtk+-3.033 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署GTK+编程环境测试GTK+编程#include int m

    22、ain(int argc,char*argv)/*声明GtkWidget构件*/GtkWidget*window;GtkWidget*label;/*调用GTK初始化函数,这在所有的GTK程序中都要调用*/gtk_init(&argc,&argv);/*创建主窗口*/window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/*为该窗口设置标题*/gtk_window_set_title(GTK_WINDOW(window),Hello World);34 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署GTK+编程环境测试GTK+编程/*将窗口的de

    23、stroy信号连接到函数gtk_main_quit*当窗口要被销毁时,获得通告,停止主GTK+循环*/g_signal_connect(window,destroy,G_CALLBACK(gtk_main_quit),NULL);/*创建“Hello,World”标签*/label=gtk_label_new(Hello,World!);/*将标签加入到主窗口*/gtk_container_add(GTK_CONTAINER(window),label);/*显示所有的GtkWidget构件,包括窗口、标签*/gtk_widget_show_all(window);/*GTK程序必须有一个gt

    24、k_main()函数启动主循环,等待事件发生并响应,直到应用结束*/gtk_main();return 0;35 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署GTK+编程环境pkg-config工具pkg-config是最为常用的库信息提取工具。pkg-config是通过库提供的一个.pc文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。使用pkg-config 工具提取库的编译和连接参数的两个基本前提:p 库本身在安装时必须提供一个相应的.pc文件;p pkg-config必须知道要到何处去寻找.pc文件。GTK+及其依赖库支持使用pkg-config工具,

    25、通过设置搜索路径来解决寻找库对应的.pc 文件的问题,库的头文件的搜索路径的设置变成了对.pc文件搜索路径的设置。36 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程 使用Glade辅助设计界面Glade简介Glade是一种GTK+应用程序的快速应用开发工具。Glade的设计初衷是将界面设计与应用程序代码分离,界面的修改不会影响到应用程序代码。用Glade设计的用户界面是以XML格式的文件保存的,它们可以通过GTK+对象GtkBuilder被应用程序动态地载入。Glade安装执行以下命令安装Glade 3工具。sudo apt-get install gladeGlade需要GTK

    26、+3支持。37 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程 使用Glade辅助设计界面使用Glade设计图形用户界面新建一个Glade项目38 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程 使用Glade辅助设计界面使用Glade设计图形用户界面选择顶层容器选择显示组件39 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程 使用Glade辅助设计界面使用Glade设计图形用户界面Glade项目40 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程 使用Glade辅助设计界面GTK+结合Glade进行编程#include int main(int

    27、 argc,char*argv)GtkBuilder *builder;GtkWidget *window;gtk_init(&argc,&argv);builder=gtk_builder_new();gtk_builder_add_from_file(builder,hello.glade,NULL);window=GTK_WIDGET(gtk_builder_get_object(builder,window1);gtk_builder_connect_signals(builder,NULL);g_object_unref(G_OBJECT(builder);gtk_widget_sh

    28、ow_all(window);gtk_main();return 0;41 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta简介Anjuta是一个为GTK+/GNOME编写的集成开发环境,除了支持C和C+编程外,还支持Java、JavaScrip和Python语言的编程。Anjuta主要特性p自身提供强大的源程序编辑功能p借用Glade工具生成GUI界面p内嵌代码级的调试器(调用GDB)p使用标准的Linux构建系统工具Autotoolsp提供应用程序向导帮助程序员快速创建GTK+程序,避免编写重复的代码在Ubuntu系统中安装Anjuta(确

    29、认安装有Glade和GTK+):sudo apt-get install anjuta 42 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用Anjuta初始界面选择项目类型43 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用设置项目基本信息设置项目选项44 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用项目结构45 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本

    30、使用项目的目录及文件46 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用启动图形界面文件编辑调用Glade编辑图形界面文件47 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用设置程序参数Anjuta创建的应用程序48 第9章 C/C+编程9.3 基于GTK+的图形用户界面编程部署集成开发环境AnjutaAnjuta基本使用制作项目编译49 第9章 C/C+编程内容CONTENTS导航使用make和Makefile实现自动编译Linux编程基础基于GTK+的图形用户界面编程基于

    31、Qt的图形用户界面编程50 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt简介Qt的发展Qt是一个跨平台的C+开发库,设计思想是同样的C+代码无需修改就可以在Windows、Linux、Mac OS等平台上使用。Qt起初是由Trolltech(奇趣科技)公司开发的跨平台C+图形用户界面应用程序开发框架。Qt不但拥有了完善的C+图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等。Qt 5是一个全新的用于跨平台应用程序和用户界面开发框架的版本,可应用于桌面、嵌入式和移动应用程序,在性能、功能和易用性方面做了极大的提升。51 第9

    32、章 C/C+编程9.4 基于Qt的图形用户界面编程Qt安装在Ubuntu命令行中启动Qt设置向导。提供Qt账户信息52 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt安装选择安装组件53 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt安装Qt Creator欢迎界面54 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt的功能和特性复杂代码编辑器。版本控制。集成用户界面设计器:Qt Creator 提供了两个集成的可视化编辑器:用于通过 Qt widget 生成用户界面的 Qt Designer,以及用于通过 QML 语言开发动态用户界面

    33、的 Qt Quick Designer。项目和编译管理。桌面和移动平台。Qt模拟器。55 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例选择项目模板56 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例设置项目名称和路径57 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例选择项目要使用的套件58 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例设置类信息59 第

    34、9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例项目管理汇总信息60 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例项目管理界面61 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例图形用户界面设计62 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例编辑标签文本正常运行结果63 第9章 C/C+编程9.4 基于Qt的图形用户界面编程Qt Creator使用Qt Creator开发示例编译输出信息选择构建方式64 第9章 C/C+编程THANKS

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Ubuntu-Linux-操作系统(微课版)第九章-CC++编程课件.pptx
    链接地址:https://www.163wenku.com/p-3591795.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库