易截截图软件、单文件、免安装、纯绿色、仅160KB

[Linux]GNU自动化工具(automake工具链)


 
Filename

[Linux]GNU
自动化工具(
automake
工具链)
Version

V1.0
Date

12/01/2009
Author

S.C.Leon <leonsc@126.com>
=====================================================================
GNU
自动化工具(
automake
工具链)
一、
Makefile
介绍
Makefile
是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,
Makefile
中纪录有文件的信息,在
make
时会决定在链接的时候需要重新编译哪些文件 
Makefile
的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。
二、
GNU
自动化工具
  
Makefile
的基本结构不是很复杂,但当一个程序开发人员开始写
Makefile
时,经常会怀疑自己写的是否符合惯例,而且自己写的
Makefile
经常和自己的开发环境相关联,当系统环境变量或路径发生了变化后,
Makefile
可能还要跟着修改。这样就造成了手工书写
Makefile
的诸多问题。为辅助实现不同编译环境之间的源代码的可移植性,人们创造了
GNU
自动化工具(
autotools
),
autoconf

autoheader

libtools

automake
和其他许多脚本工具一起工作并共同构成了
GNU
编译系统。
使用
automake
,程序开发人员只需要写一些简单的含有预定义宏的文件,由
autoconf
根据一个宏文件生成
configure
,由
automake
根据另一个宏文件生成
Makefile.in
,再使用
configure
依据
Makefile.in
来生成一个符合惯例的
Makefile
。下面我们将详细介绍
Makefile

automake
生成方法。
二、使用的环境
  本文所提到的程序是基于
Linux
发行版本:
Ubuntu 9.04

linux
主流发行版均可),它包含了我们要用到的
autoconf

automake

三、
helloworld
示例
从最常使用的例子程序
helloworld
开始。

helloworld.c
源文件通过
automake
工具链自动生成
Makefile
,最后生成可执行文件的简要步骤如下:
1
)新建三个文件:
helloworld.c
configure.in
Makefile.am
其中
configure.in

Makefile.am
是需要我们自己创建的。具体写法详见后文。
2)
然后执行:
aclocal;
autoconf;
automake --add-missing;
./config


相关文档:

关于Linux的alsa音频问题解决

      到今日,在android平台上调试声音的方面终于有了进展,原来是需要改一个配置文件,目前只是解决了问题,具体原因以后再分析。硬件平台是6410+WM9714,软件平台是ANDROID。现在由于android系统启动时,加载音频服务不成功,处于一个死循环中,老停在登陆界面。此时打印的Logcat信息如下:
......

linux下驱动的入口函数及加载

      几乎每个linux驱动都有个module_init。没错,驱动的加载就靠它。先来分析一下module_init。定义如下:
#define module_init(x)     __initcall(x);              //include\linux\init.h
#define ......

Linux网络编程一步一步学 异步通讯聊天程序select

什么是异步通讯?
就是通讯任意一方可以任意发送消息,有消息来到时会收到系统提示去接收消息。
这里要用到select函数。使用步骤如下:
1、设置一个集合变量,用来存放所有要判断的句柄(file descriptors:即我们建立的每个socket、用open打开的每个文件等)
2、把需要判断的句柄加入到集合里
3、设置判断时间 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号