西南师范大学:《网络操作系统-Linux基础》第23、25章 Linux基础编程

网络操作系统- Linux基础 主讲人:王柯wangk(@swnu.edu.cn 西南师范大学计算机科学系2005年春
网络操作系统-Linux基础 主讲人:王柯 wangk@swnu.edu.cn 西南师范大学计算机科学系 2005年春

Red hat linux编程基础 第23章一第25章
Red Hat Linux 编程基础 第23章 - 第25 章

第23章Linuⅹ基础编程 231GNU计划的实用程序 23.2编程环境 23.2GCC介绍 234 GNU make介绍 23.5gdb调试工具 236编程语言
第23章 Linux 基础编程 • 23.1 GNU计划的实用程序 • 23.2 编程环境 • 23.2 GCC介绍 • 23.4 GNU make介绍 • 23.5 gdb调试工具 • 23.6 编程语言

GNU Package的典型安装 1.下载源代码包io10arg幕后英雄 2. tar c10 GNU Auto Tools: 问题1:配置脚本 configure autoconf, automake 3.cd是怎么生成的? libtool, autoscan, autoheader 4. conure 5. make 6.(su)m间题2: configure脚本怎么知 道该如何生成 Makefile
1. 下载源代码包foo-1.0.tar.gz 2. tar xvzf foo-1.0.tar.gz 3. cd foo-1.0 4. ./configure 5. make 6. (su) make install 问题1:配置脚本configure 是怎么生成的? 问题2:configure脚本怎么知 道该如何生成Makefile 幕后英雄—— GNU Auto Tools: autoconf, automake, libtool, autoscan, autoheader…… GNU Package的典型安装

All in one solution GNU Auto tools是上个世纪90年代开始发展起 来的一系列辅助开发、打安装包的自动化工具 各种工具分别开发,但是协同工作得很好。比 如 autoconf;" automake, libtool等等。 但是,连开发者自己也承认,这套工具虽然好 用,但是学习曲线很陡峭。 困难在于:一套新的思路和习惯,一套自定义 的宏和规则,使用者的交流
All in One Solution? • GNU Auto Tools是上个世纪90年代开始发展起 来的一系列辅助开发、打安装包的自动化工具。 • 各种工具分别开发,但是协同工作得很好。比 如autoconf, automake, libtool等等。 • 但是,连开发者自己也承认,这套工具虽然好 用,但是学习曲线很陡峭。 • 困难在于:一套新的思路和习惯,一套自定义 的宏和规则,使用者的交流

工作原理 (autoscan edit aclocal configure scan configure. in aclocalm4 autoconf automake Makefile, am Makefile. in conFigure Makefile
工作原理 autoscan configure.scan configure.in Makefile.am Makefile.in Makefile automake edit aclocal.m4 aclocal configure autoconf

· Autoconf:根据用户提供的 configure. in文件,生成 个名为 configure的脚本。该脚本可以搜集有关移植性 的平台相关信息,这些信息被用来生成 Makefiles,配 置头文件和其它平台相关的文件 Automake:根据用户提供的一个高层次的生成规则 Makefile, am,生成 Makefile文件的模板 Makefile. in。 Automake生成的 Makefiles符合GN的 Makefile标准, 用户无需再手工编写 Makefile文件 · Libtool:使得生成内存位置无关的代码且让共享库在 不同平台间移成为可能。它可以不依赖 autoconf和 automake单独运行,另一方面, automake和ito0可 以无缝地集成使用
• Autoconf:根据用户提供的configure.in文件,生成一 个名为configure的脚本。该脚本可以搜集有关移植性 的平台相关信息,这些信息被用来生成Makefiles,配 置头文件和其它平台相关的文件。 • Automake:根据用户提供的一个高层次的生成规则 Makefile.am,生成Makefile文件的模板Makefile.in。 Automake生成的Makefiles符合GNU的Makefile标准, 用户无需再手工编写Makefile文件。 • Libtool:使得生成内存位置无关的代码且让共享库在 不同平台间移成为可能。它可以不依赖autoconf和 automake单独运行,另一方面,automake和libtool可 以无缝地集成使用

Hello world- Step by Step hello. c #include int main( printf( Hello World! n); return 0 02. Makefile. am bin Programs= hello hello SOURCES helloc configure. in AC INIT(hello. c) AM INIT AUTOMAKE(hello, 0.1) AC PROG CC AC OUTPUT(Makefile) 4. aclocal 5. autoconf 6. automake --add-missing--foreign 7. /configure 8mae( make install安装, make dist产生安装包)
Hello World – Step by Step • 1. hello.c #include int m ain() { printf(“Hello World!\n”); return 0; } • 2. Makefile.am bin_P ROGRAMS = hello hello_SOUR C ES = hello.c • 3. configure.in AC_INIT(hello.c) AM_INIT_AUTOMAKE(hello, 0.1) AC_PROG_CC AC_OU TPUT(Makefile) • 4. aclocal • 5. autoconf • 6. automake --add-missing --foreign • 7. ./configure • 8. make ( make install 安装,make dist 产生安装包)

configure in(1) 是 configure.本的输入文件,为了解决在不同 unⅸx变种之间移植程序的问题:库名可能不同, 应用程序名可能不同,结构和常量的定义可能 不同 configure脚本完成 autoconf与 automake的初始化 工作,为不同的平台定义相应的宏,检测并指 定适当的程序名、库名、结构和常量名等等, 指定要为哪些目录输出 Makefile文件。总之, 为编译程序做好一切准备工作
configure.in(1) • 是configure脚本的输入文件,为了解决在不同 unix变种之间移植程序的问题:库名可能不同, 应用程序名可能不同,结构和常量的定义可能 不同…… • configure脚本完成autoconf与automake的初始化 工作,为不同的平台定义相应的宏,检测并指 定适当的程序名、库名、结构和常量名等等, 指定要为哪些目录输出Makefile文件。总之, 为编译程序做好一切准备工作

configure in(2) configure inl的八股文 1.基本初始化部分:包括 AC INIT(必须 第一个出现 AM INIT AUTOMAKE(程序包名,版 本号) AC CONFIG HEADER 2.可选宏:如 AC ARG ENABLE 3.检测某些程序的存在性 4.检查程序用到的库
configure.in(2) configure.in的八股文 1. 基本初始化部分:包括AC_INIT (必须 第一个出现), AM_INIT_AUTOMAKE(程序包名,版 本号), AC_CONFIG_HEADER 2. 可选宏:如AC_ARG_ENABLE 3. 检测某些程序的存在性 4. 检查程序用到的库
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西南师范大学:《网络操作系统-Linux基础》第19、22章 配置网络连接.pdf
- 西南师范大学:《网络操作系统-Linux基础》第13、18章 用户管理.pdf
- 西南师范大学:《网络操作系统-Linux基础》第9、12章 TCP/P网络基础.pdf
- 西南师范大学:《网络操作系统-Linux基础》第7、8章 Linux文件系统.pdf
- 西南师范大学:《网络操作系统-Linux基础》第6章 Linux进程.pdf
- 西南师范大学:《网络操作系统-Linux基础》第3、5章 Redhat linux9桌面环境.pdf
- 西南师范大学:《网络操作系统-Linux基础》第2章 Red Hat Linux9.0 安装与配置.pdf
- 西南师范大学:《网络操作系统-Linux基础》第1章 Red Hat Linux简介.pdf
- 《计算机组成原理》课程教学资源:第六讲 光盘的存储原理与组成.ppt
- 《计算机组成原理》课程教学资源:第一讲 输入/输出系统概述和输入/输出方式.ppt
- 《计算机组成原理》课程教学资源:第二讲 总线.ppt
- 《计算机组成原理》课程教学资源:第三讲 接口电路设计.ppt
- 《计算机组成原理》课程教学资源:第四讲 输入设备和输出设备.ppt
- 清华大学:《计算机组成原理》第八讲 控制器.ppt
- 清华大学:《计算机组成原理》第三讲 逻辑电路设计基础.ppt
- 清华大学:《计算机组成原理》第二十九、三十二讲 输入输出系统.ppt
- 清华大学:《计算机组成原理》第二十七、二十八讲 输入输出设备.ppt
- 清华大学:《计算机组成原理》第二十一、二十三讲 流水线处理机.ppt
- 清华大学:《计算机组成原理》第十一、十二讲 指令系统.ppt
- 清华大学:《计算机组成原理》第九-十讲 存储器.ppt
- 西南师范大学:《网络操作系统-Linux基础》第26章 应用软件.pdf
- 《信息代码》数字化信息编代码讲义.doc
- 《网络与信息安全》课程教学资源:课程习题及参考答案.doc
- 《网络与信息安全》课程教学资源:复习题与习题.ppt
- 北京工业大学:《人工神经网络》PDF电子书.pdf
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第一章 引言(主讲:李晖).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第四章 分组密码(分组码的运行模式).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第四章 分组密码(分组密码概述).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第二章 密码学基础.ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第三章 流密码(线性反馈移位寄存器序列、B-M综合算法、非线性序列).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第三章 流密码(流密码的基本概念、线性反馈移位寄存器序列).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第四章 分组密码(美国数据加密标准——Data Encryption Standard DES).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第四章 分组密码(AES).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第四章 分组密码(分组密码的分析).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第六章 密钥分配与密钥管理 Key Distribution and Key Management(单钥加密体制的密钥分配 Key Distribution of symmetric cryptography、公钥加密体制的密钥管理 Key Management of Public Key Cryptography).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第五章 公钥密码(数论简介).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第五章 公钥密码(RSA算法、椭圆曲线(ECC)密码体制).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第五章 公钥密码(数论简介、公钥密码体制的基本概念 Basic Concept of Public Key Cryptography、RSA算法).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第七章 消息认证和杂凑算法 Message Authentication and Hash Algorithms(杂凑函数 Hash Functions、HMAC算法、数字签字和密码协议、数字签字的基本概念).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第六章 密钥分配与密钥管理 Key Distribution and Key Management(公钥加密体制的密钥管理 Key Management of Public Key Cryptography、密钥托管 Key Escrow、随机数的产生 Generation of Random Numbers).ppt