- 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