千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要为大家展示了"linux中怎么用autoscan和automake由makefile.am自动生成makefile",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一
千家信息网最后更新 2025年12月03日linux中怎么用autoscan和automake由makefile.am自动生成makefile

这篇文章主要为大家展示了"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"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

生成 命令 文件 运行 程序 自动生成 内容 软件 两个 工具 步骤 源程序 篇文章 帮助 编译 下有 源文件 目录 系统 紧接着 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 全域数据管理服务器 db2数据库服务器版本 网络安全排名太极股份 哈尔滨的软件开发公司 如何数据库跟踪 国产服务器支持光口吗 数据库表字段名为全数字怎么查询 同sql 拷贝不同数据库 单位网络安全宣传周通讯报道 保护网络安全的法律法规 福州格链网络技术研究中心 接网站外包需要租服务器吗 人行金融网络安全宣传活动 腾讯云数据库dba招聘 太原政务软件开发 苏州工控软件开发哪家专业 360保护中国网络安全 幼儿园中班网络安全知识教案 江西余料套料软件开发商 银行软件开发中心怎么面试 浙江宁波浪潮塔式服务器与工作站 网络安全原理与实务PPT 使命召唤12数据库 联邦下单服务器异常 太原政务软件开发 戴尔服务器开机卡logo 杭州软件开发一般工资多少 学生信息系统数据库需要几个表 网站维护数据编程软件开发 教师网络安全教育讲座稿
0