Linux 软件开发工具简介 设计 编码/调试 部署 维护.

Slides:



Advertisements
Similar presentations
陋室銘 劉禹錫 立人國中小丹老師編製 劉禹錫二三事 司空見慣 劉禹錫才氣縱橫,卻恃才傲物,一生落拓時候 多,當他貶為蘇州刺史時,司空李紳請他喝酒, 並請了一個貌美清秀的歌妓獻唱,他大為心動 寫了一首詩:「高髻雲鬢新樣妝,春風一曲杜 韋娘,司空見慣渾閒事,斷盡蘇州刺史腸。」 李紳明白其中寓意,便將歌妓送給他。而「司.
Advertisements

海阔凭鱼跃 天高任鸟飞 Autoconf 介绍 李俊良 2010/08/18. 内容大纲 学习目的 Autoconf 介绍 Autoconf 框架图 Autoconf 流程 Autoconf 优化 Autoconf 小结 FAQ.
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
SCILAB 科學軟體教學 撰寫者: 1.中央大學大氣科學系 楊善文 2. (為本文有貢獻者,記得在此留名。)
基础模块 模块一 程序设计基础 (一)开发环境部分.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
ARM 嵌入式系统 第七章 嵌入式Linux.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
安 全 維 護 臺 東 林 區 管 理 處 消費安全 詐騙防範宣導 健康生活 毒家新聞 杜絕不明匯款及金融轉帳操作
Linux并行计算平台搭建及应用 王彦棡 2010年5月.
计算机体系结构 应用程序 软件 操作系统 编译器 固件 指令集 输入输出 CPU 硬件 内存 (I/O) 集成电路 元件,逻辑门.
有趣的linux入门文章 By dogfox 制作.
嵌入式系统讲义 第5章 嵌入式系统软件开发环境与工具
第1讲 实验环境.
Oracle数据库 Oracle 子程序.
Subversion (SVN) Presented by 李明璋 R /2/21
升學應選擇符合自己性向、興趣或能力的學校就 讀,有五專、高職、高中、綜合高中或進修學校, 可要多花些時間了解一下哦!
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Computer Network Lab 資碩一 黃麒瑋
本章导读 Webmin简介 Webmin的安装和配置 停止和启动Webmin服务 使用Webmin配置Samba服务
陈炎 南京大学软件学院 Ant简介 Ant一个优秀的构建工具 Ant意思是Another Neat Tool 陈炎 南京大学软件学院
簡易 Visual Studio 2010 C++ 使用手冊
第1章 Fortran概述 作为一门诞生于上个世纪50年代后半期的高级计算机语言,Fortran在这个C/C++、Java等新兴语言大行其道的时代仍然活跃在人们的视野之中。Fortran语言的长项在于数值计算,在科学研究和工程设计领域有着广泛的用途。在描述数学语言的自然性方面,Fortran同现存的其他高级语言相比有着明显的优势。对于科研工作者和工程技术人员而言,Fortran语言的易学性和易用性是公认的。
Linux 的一些事儿 系统管理 宁波市高校慕课联盟课程
編譯環境介紹.
AngularJS -- 使用AngularJS进行开发
第4章 PIC软件开发设计基础.
第二讲 搭建Java Web开发环境 主讲人:孙娜
学习前的准备工作 讲师:burning.
Chinese Virtual Observatory
编译与多文件.
第二天 计算机基础技能培训 (一)linux基础知识
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
SVN服务器的搭建(Windows) 柳峰
什么是C语言 编写HelloWorld程序 注释
代码风格 ACM Class 2016 范舟.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Visual Studio Team System 简介
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
永远的 Autotools ——GNU Build System 简介(一)
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
簡易 Visual Studio 2005 C++ 使用手冊
Linux核心編譯與模組管理 2013/01/19.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
VSS使用简介 王树升
编辑文本文件 软件包管理 Samba 在Linux下使用Windows共享打印机
利用ICE通信中间件构建分布式应用程序开发框架
Gzip编译及调试 曹益华
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
序及第0章.
程序设计工具实习 Software Program Tool
第二章 UNIX系统安装与常用命令.
C语言程序设计 主讲教师:陆幼利.
Confidential Property
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
姚金宇 MIT SCHEME 使用说明 姚金宇
3Glasses SDK for Unreal Engine Plugin
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
Linux 服务器配置与管理 用yum管理 软件包 宁波城市职业技术学院
实验一:编译运行Linux内核并使用gdb进行调试
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
助教:田成锦、汪睿、游翎璟 吴加禹、李佳伟、唐凯成
C++程序设计 概述 潘荣江 山东大学软件学院.
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
嵌入式Linux编程环境.
第四章 UNIX文件系统.
劉庠宏、林合治編著 國立高雄大學應用數學系 2005年3月1日
Presentation transcript:

Linux 软件开发工具简介 设计 编码/调试 部署 维护

小组成员与分工 周清博:Emacs, GNU Autotools. 普林强:Subversion 张磊/陆军军:Bugzilla 万青:gdb调试 罗利维:UML工具

工作概览

设计-ArgoUML(Tigris.org) 纯Java编写,平台无关 符合UML标准 XMI,OCL支持 正向、反向工程 主要面向Java语言,也有C++、C#、PHP的模块 本项目用纯C语言编写,且规模很小,所以只简单地画了一下几个结构的内容

编码/调试 ChangeLog(C-x v a) 程序用 C 语言编写,利用了 GTK+ 2.0,声音用esd库 用emacs作代码编辑器 强大的语法高亮功能,可以对C/C++,Makefile等着色,方 便阅读 代码格式化功能,包括注释 良好的扩展性 编译 调试(GUD) 方便地添加文件头 ChangeLog(C-x v a) 代码自动补全

Emacs-语法加亮

Emacs-格式化代码 M-; 插入注释 CC-MODE, GNU, K&R, Stroustrup, ... 多行函数参数 空行缩进与下行代码保持一致 合适地处理长注释(M-q) CC-MODE, GNU, K&R, Stroustrup, ...

编译 M-x compile 默认命令为 make -k 可方便地从编译错误跳到错误处 C-x `移动到下一个出错处

Emacs GUD-调试 可视化的调试 tooltip支持

自动补全代码 Xrefactory Senator Semantic-ia Speedbar ... 正确地分析项目中源代码语义,补全代码 代码浏览 非开源($400),免费试用 Senator Semantic-ia Speedbar ...

GNU Autotools Autoscan Aclocal Libtoolize Autoconf Autoheader Automake 自动完成项目的配置、编译与部署 仅需少量的手工工作 组件: Autoscan Aclocal Libtoolize Autoconf Autoheader Automake

目录结构 audio src AUTHORS COPYING NEWS ChangeLog README INSTALL ./audio: fixup.wav readygo.wav fadelayer.wav lost.wav transform.wav ./src: figure.h grid.h global.h sound.c square.c tetris.c square.h figure.c grid.c sound.h

Makefile.am bin_PROGRAMS = tetris tetris_SOURCES = tetris.c \ ./src Makefile.am bin_PROGRAMS = tetris tetris_SOURCES = tetris.c \ global.h \ figure.c \ figure.h \ grid.c \ grid.h \ sound.h \ sound.c \ square.c \ square.h tetris_CFLAGS = -Wall -g --ansi \ `pkg-config --cflags gtk+-2.0` \ -DDATADIR=\"$(datadir)\" tetris_LDFLAGS = `pkg-config --libs \ gtk+-2.0 gthread-2.0 esound` Top dir SUBDIRS = src audio ./audio audiodir = $(datadir)/tetris/audio audio_DATA = fadelayer.wav \ fixup.wav \ lost.wav \ readygo.wav \ transform.wav EXTRA_DIST = $(audio_DATA)

Autoscan 在源代码顶层目录运行autoscan 顶层目录中生成一个文件configure.scan 修改configure.scan,并重命名为configure.ac

configure.ac AC_PREREQ(2.59) AC_INIT(tetris, 0.1.0, xyzzqb@ustc.edu) AC_CONFIG_SRCDIR([src/tetris.c]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_AUX_DIR([gnubuild]) AC_PROG_LIBTOOL AM_INIT_AUTOMAKE # Checks for programs. AC_PROG_CC # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE # Checks for library functions. AC_FUNC_MALLOC AC_CONFIG_FILES([Makefile audio/Makefile src/Makefile]) AC_OUTPUT

autoreconf aclocal --output=aclocal.m4t libtoolize --copy --force 运行命令autoreconf --install --force 相当于: aclocal --output=aclocal.m4t libtoolize --copy --force autoconf --force autoheader --force automake --add-missing --copy --force-missing

可以安装了! 如同大部分的Linux软件发行一样 可以在顶层目录运行./configure命令 这一步,根据参数prefix(可选)确定了datadir这个宏的值 因此在编码时就可以确定声音文件的路径为datadir “/tetris/audio/” 下一步编译:make 安装:make install

发布我们的软件 make dist 生成tetris-0.1.0.tar.gz Tar zxvf tetris-0.1.0.tar.gz 这就是我们在Linux中安装软件时下载下来的一般格式,看起来内容很繁琐,其实都是GNU Autotools生成的 用户下载下来这个文件以后 Tar zxvf tetris-0.1.0.tar.gz Cd tetris-0.1.0 ./configure && make && make install 就可以玩游戏了。。 这是用gzip压缩的,在configure.ac中把那行换成 AM_INIT_AUTOMAKE(dist-bzip2) 就可以生成用bzip2压缩的文件,一般体积更小

关于autotools Autobook: http://sources.redhat.com/autobook/ Helloworld: 功能强大,方便实用 学习曲线陡峭,我们也只知皮毛 实用的资源: Autobook: http://sources.redhat.com/autobook/ Helloworld: http://tools.devchannel.org/article.pl?sid=04/ 01/26/0143221&mode=thread&tid=46 http://tools.devchannel.org/devtoolschannel/0 3/11/14/1615230.shtml?tid=46 相关的Mailing list 最后,如果你照着tutorial用autotools发现了莫名其妙的问题,很可能是autoconf和automake版本不一致,重装吧

再说gdb Watch point Watch Rwatch Awatch 和一般Unix程序一样的TAB自动补全功能 命令自动执行 附到运行的程序中

命令自动执行 (gdb) commands 1 Type commands for when breakpoint 1 is hit, one per line. End with a line saying just "end". >print i >print j >end (gdb) run Starting program: /home/flimsy/programming/a.out Breakpoint 1, main () at test.c:5 5 int i = 0, j; $1 = -1073743564 $2 = 1073833280 (gdb)

More Info about gdb Linux下的工具比Windows中的更能有机地结合,从而组成更加强大的功能 gdb可以方便地扩展为GUI界面,而Windows下的VC等IDE的调试器却不能提供如gdb的命令接口 Resouces: Books(gdb命令非常多) http://www.gnu.org/software/gdb/documentatio n/