关于Makefile自动生成-autotools的使用

在Linux应用开发中,编写Makefile是一项必备技能,因为它定义了工程中所有文件的编译顺序、规则和依赖关系,决定了哪些文件需要编译以及它们的编译顺序。

虽然对初级开发者而言,编写复杂的Makefile并非日常任务,但遇见需要构建大型软件项目时,利用工具自动生成Makefile就显得尤为关键。接下来,我们将重点介绍一款自动化构建工具——Autotools,帮助开发者高效地管理项目构建流程。

1、安装需要工具

elf@ubuntu:~/work$sudoapt-getinstallautomake

2、测试程序编写

elf@ubuntu:~/work/autotools$

__HELLO_H__if

写好之后保存退出。

3、使用autoscan工具生成文件

autoscan将生成一个名为的文件,其中包含了自动扫描到的可能需要配置的信息。

elf@ubuntu:~/work/autotools$autoscanelf@ubuntu:~/work/autotools$

4、修改文件

将文件重命名为,然后进一步编辑该文件。开发者通常会添加更多的配置检查和必要的宏定义,以确保生成的configure脚本能够正确地检测和配置系统环境。

elf@ubuntu:~/work/autotools$

修改

AC_INIT([FULL-PACKAGE-NAME],[VERSION],[BUG-REPORT-ADDRESS])

修改为

AC_INIT(main,0.0.1,[bug@])

其中:

FULL-PACKAGE-NAME为程序名称,

VERSION为当前版本,

BUG-REPORT-ADDRESS为bug汇报地址。

然后添加两句话

AM_INIT_AUTOMAKEAC_CONFIG_FILES([Makefile])

AM_INIT_AUTOMAKE宏用于初始化automake,告诉autotools使用automake工具来管理生成的Makefile。

AC_CONFIG_FILES宏告诉autotools生成哪些文件。在这种情况下,它指定生成一个名为Makefile的文件。

修改完成的如下:

_PREREQ([2.69])_PROG__CHECK_HEADERS([])_CONFIG_FILES([Makefile])AC_OUTPUT

5、执行aclocal

执行aclocal命令会生成文件,这个文件包含了用于自动配置和构建软件的宏定义和规则。

elf@ubuntu:~/work/autotools$aclocal
elf@ubuntu:~/work/autotools$

6、autoconf

autoconf命令根据文件生成configure脚本。

elf@ubuntu:~/work/autotools$autoconf
elf@ubuntu:~/work/autotools$

7、autoheader

autoheader命令用于生成文件。这个文件是由中的一些宏命令生成的模板文件,它包含了预处理器定义和配置选项,会在configure脚本执行时生成最终的文件。

elf@ubuntu:~/work/autotools$autoheader
elf@ubuntu:~/work/autotools$

8、制作

是用来描述源代码和生成目标之间依赖关系的Automake规则文件

elf@ubuntu:~/work/autotools$
AUTOMAKE_OPTIONS=foreignbin_PROGRAMS=mainmain_SOURCES=

9、automake--add-missing

automake--add-missing命令会根据文件生成文件。

elf@ubuntu:~/work/autotools$:12:installing'./compile':7:installing'./install-sh':7:installing'./missing':installing'./depcomp'
elf@ubuntu:~/work/autotools$

10、./configure--host=arm

./configure--host=arm命令会生成Makefile文件。

elf@ubuntu:~/work/autotools$./opt/fsl-imx-x11/4.1.15-2.0.0/environment-setupcortexa7hf-neon-poky-linux-gnueabi
elf@ubuntu:~/work/autotools$./configure--host=arm

11、make生成可执行文件

elf@ubuntu:~/work/autotools$make
elf@ubuntu:~/work/autotools$

12、将可执行文件拷贝到板子中运行

elf@ubuntu:~/work/autotools$scpmainroot@192.168.5.98:/home/root/
root@ELF1:~#./mainHello,ElfBoard!

执行应用终端打印“Hello,ElfBoard”应用可以正常运行,这证明使用autotools工具生成Makefile是没有问题的。

至此,就完成了Makefile自动生成利器—autotools的运用的介绍。衷心期望这些知识能为正在屏幕前阅读的你带来实质性的帮助,激发你在软件工程领域不断探索与创新。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐