共计 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 网 – 提供最优质的资源集合!