文档介绍:网络操作系统-Linux基础
主讲人:王柯 ******@swnu.
西南师范大学计算机科学系 2005年春
Red Hat Linux 编程基础
第23章-第25章
第23章 Linux 基础编程
• GNU计划的实用程序
• 编程环境
• GCC介绍
• GNU make介绍
• gdb调试工具
• 编程语言
GNU Package的典型安装
1. 下载源代码包foo- 幕后英雄——
2. tar xvzf foo- GNU Auto Tools:
问题1:配置脚本configure autoconf, automake,
是怎么生成的? libtool, autoscan,
3. cd foo- autoheader……
4. ./configure
5. make
6. (su) make问题 2install:configure脚本怎么知
道该如何生成Makefile
All in One Solution?
• GNU Auto Tools是上个世纪90年代开始发展起
来的一系列辅助开发、打安装包的自动化工具。
•各种工具分别开发,但是协同工作得很好。比
如autoconf, automake, libtool等等。
•但是,连开发者自己也承认,这套工具虽然好
用,但是学习曲线很陡峭。
•困难在于:一套新的思路和习惯,一套自定义
的宏和规则,使用者的交流。
工作原理
autoscan edit aclocal
autoconf
automake
configure
Makefile
• Autoconf:,生成一
个名为configure的脚本。该脚本可以搜集有关移植性
的平台相关信息,这些信息被用来生成Makefiles,配
置头文件和其它平台相关的文件。
•Automake:根据用户提供的一个高层次的生成规则
,。
Automake生成的Makefiles符合GNU的Makefile标准,
用户无需再手工编写Makefile文件。
• Libtool:使得生成内存位置无关的代码且让共享库在
不同平台间移成为可能。它可以不依赖autoconf和
automake单独运行,另一方面,automake和libtool可
以无缝地集成使用。
Hello World – Step by Step
• 1.
#include <>
int main() { printf(“Hello World!\n”); return 0; }
• 2.
bin_PROGRAMS = hello
hello_SOURCES =
• 3.
AC_INIT()
AM_INIT_AUTOMAKE(hello, )
AC_OUTPUT(Makefile)
• 4. aclocal
• 5. autoconf
• 6. automake --add-missing --foreign
• 7. ./configure
• 8. make (make install 安装,make dist 产生安装包)
(1)
•是configure脚本的输入文件,为了解决在不同
unix变种之间移植程序的问题:库名可能不同,
应用程序名可能不同,结构和常量的定义可能
不同……
• configure脚本完成autoconf与automake的初始化
工作,为不同的平台定义相应的宏,检测并指
定适当的程序名、库名、结构和常量名等等,
指定要为哪些目录输出Makefile文件。总之,
为编译程序做好一切准备工作。
(2)
1. 基本初始化部分:包括AC_INIT (必须
第一个出现),
AM_INIT_AUTOMAKE(程序包名,版
本号), AC_CONFIG_HEADER
2. 可选宏:如AC_ARG_ENABLE
3. 检测某些程序的存在性
4. 检查程序用到的库