linux中怎么用autoscan和automake由makefile.am自动生成makefile

66次阅读
没有评论

共计 2636 个字符,预计需要花费 7 分钟才能阅读完成。

行业资讯    
服务器    
系统运维    
linux 中怎么用 autoscan 和 automake 由 makefile.am 自动生成 makefile

自动写代码机器人,免费开通

这篇文章主要为大家展示了“linux 中怎么用 autoscan 和 automake 由 makefile.am 自动生成 makefile”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计2636字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)