Linux下AutoMake创建工程流程

2023-02-28 12:56:38 浏览数 (2)

  • Makefile 作为一名Linux软件开发工程师对Makefile都不陌生,Makefile可以定义整个工程的编译规则,编写好Makefile后每次代码有修改时我们只需make进行编译,它可以省去繁琐的编译步骤,极大的提高了软件开发的效率。
  • AutoMake

❝GNU Automake是一种编程工具,可以产生供make程序使用的Makefile,用来编译程序。它是自由软件基金会发起的GNU计划的其中一项,作为GNU构建系统的一部分。automake所产生的Makefile符合GNU编程标准。Automake目标是让用户透过高级语言来写makefile,而不是透过纯手工的方式来写整个makefile。 ❞

如果工程的源码量比较大,文件比较多,那么通过AutoMake管理工程绝对是一个好的选择。下面展示如何一步一步创建属于自己的AutoMake工程

  • 环境:Ubuntu16.04

1. 新建工程目录

代码语言:javascript复制
mkdir Project

2. 在工程目录创建以下目录及文件

代码语言:javascript复制
mkdir include src # 添加源码目录
touch Makefile.am
touch src/Makefile.am
touch NEWS README ChangeLog AUTHORS

3. 修改文件

修改Makefile.am src/Makefile.am文件 Makefile.am修改如下:

代码语言:javascript复制
#SUBDIRS=lib src
SUBDIRS=src

#打包时额外包含
EXTRA_DIST=autogen.sh 
           include

src/Makefile.am修改如下:

代码语言:javascript复制
bin_PROGRAMS = PrjTest
AM_CPPFLAGS = -I$(top_srcdir)/include
test_LDADD = -lpthread
test_SOURCES = Main.cpp #每次添加源文件 在此添加文件名即可

4. 执行命令autoscan

将生成的configure.scan重名congfigure.ac 可用修改好的Project下的configure.ac

5. 配置编译

autogen.sh文件内容

代码语言:javascript复制
#!/bin/sh
aclocal
autoconf
automake --add-missing

将Project下autogen.sh拷贝到当前目录,然后执行以下命令

代码语言:javascript复制
sh autogen.sh
./configure
make

0 人点赞