这篇文章主要为大家展示了“linux中怎么用autoscan和automake由makefile.am自动生成makefile”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中怎么用autoscan和automake由makefile.am自动生成makefile”这篇文章吧。
如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了。
* 在开始使用autoconf和automake之前,首先确认你的系统安装有GNU的如下软件:
1. automake
2. autoconf
3. m4
4. perl
5. 如果你需要产生共享库(shared library)则还需要GNU Libtool。
* 介绍方法之前,大家先记下autoconf和automake工作的几个步骤,步骤解释如下:
1、由你的源文件通过autoscanf命令生成configure.scan文件,然后修改
configure.scan文件并重命名为configure.in
2、由aclocal命令生成aclocal.m4
3、由autoconf命令生成configure
注:很重要!
如果这里紧接着直接进行第4步:
automake --add-missing:后会出现错误:configure.in:8:required file
`./config.h.in' not found
紧接着./configure后会出现 config.status: error: cannot find input file:
config.h
解决办法:在automake --add-missing之前执行autoheader就ok了,一般网上的资料
很少有人提到这一步,大家也都是转来转去,所有会导致错误的发生。
4、编辑一个Makefile.am文件并由automake(automake --add-missing)命令生成
Makefile.in文件
5、./configure命令生成Makefile (后面有命令介绍)
实战:我的源程序结构如下:总共两个目录:viaencode/ 、videolib/,
viaencode/下有两个源文件和一个makefile.am文件: encodeapi.c 、viaenc.c 、 Makefile.am
videolib/下有四个头文件: MP4EncApi.h、hw_lib.h、ViaApi.h 、itu.h,以及六个.a库文件:libext_device_ctrl.a 、libhwdec.a、libhwenc.a、libitu.a、libuserdev.a、libvia.a。生成目标程序viaenc要下载到开板中运行。
按照如下步骤来自动生成Makefile吧:
1、进入viaencode/目录,运行autoscan命令,命令如下:
# cd viaencode/
# autoscan
2、ls会发现多了一个configure.scan文件。修改此文件,在AC_INIT宏之后加入AM_INIT_AUTOMAKE(viaenc, 1.0),这里hello是你的软件名称,1.0是版本号,即你的这些源程序编译将生成一个软件viaenc-1.0版。“然后把 configure.scan文件的最后一行AC_OUTPUT宏填写完整变成AC_OUTPUT(Makefile),表明autoconf和 automake最终将生成Makefile文件”,这样的话会出错,因为之前有一句AC_CONFIG_FILES([Makefile]),所以我没变。最后把configure.scan文件改名为configure.in。
3、运行aclocal命令,ls会发现多了一个aclocal.m4文件。
4、然后运行autoconf命令,ls将发现生成了一个可执行的configure命令。
5、执行autoheader,前面已讲过。
6、编辑一个Makefile.am文件,已有,文件内容如下:
bin_PROGRAMS = viaenc
viaenc_SOURCES = viaenc.c encodeapi.c
AM_CFLAGS = -I../videolib
LDADD = -L../videolib -lvia -litu -lhwdec -lext_device_ctrl -lhwenc - lpthread -luserdev
7、运行automake --add-missing命令。屏幕提示如下:
automake: configure.in: installing `./install-sh'
automake: configure.in: installing `./mkinstalldirs'
automake: configure.in: installing `./missing'
8、运行configure命令来生成一个Makefile文件,输入./configure命令即可 9、因为应用程序是要下载到开发版中运行,所以必须修改交叉编译工具。修改Makefile中的CC = gcc,改为指向自己的交叉编译工具,CC=/usr/local/arm/gcc-3.4.4-glibc-2.3.6/bin/arm-linux-gcc。否则会出错!!!
运用autoconf和automake的最大好处是,你的程序以源程序方式发布后,其它所有人只需要依次输入./configure ,make,make install命令就可以把你的程序安装在自己的电脑上运行了。所有符合GNU标准的UNIX/Linux都不需要再修改Makefile里的任何字符。
以上是“linux中怎么用autoscan和automake由makefile.am自动生成makefile”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。