我以前是直接写的makefile文件,生成o文件人然后生成执行文件。
但是现在针对于很多文件就会出现文件太多的问题
后来知道了autotools
主要是目录有lib、src、include
目录中文件
├── include
│ └── add.h
├── lib
│ ├── add.cpp
│ ├── Makefile.am
├── Makefile.am
├── src
│ ├── main.cpp
│ ├── Makefile.am
#cat Makefile.am
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = lib src
EXTRA_DIST = autogen.sh
# cat src/Makefile.am
AUTOMAKE_OPTIONS=foreign
INCLUDES = -I../include
bin_PROGRAMS=hehe
hehe_SOURCES=main.cpp
hehe_LDADD=../lib/libadd.a
$ cat lib/Makefile.am
AUTOMAKE_OPTIONS=foreign
INCLUDES = -I../include/
noinst_LIBRARIES=libadd.a
libadd_a_SOURCES=add.cpp
$autoscan
$ cat configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_INIT(hehe, 0.1)
AM_INIT_AUTOMAKE(hehe, 0.1)
AC_CONFIG_SRCDIR([lib/add.cpp])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_RANLIB
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CONFIG_FILES([Makefile
lib/Makefile
src/Makefile])
AC_OUTPUT
接下来步骤:
aclocal
autoconf
autoheader
automake --add-missing

本文介绍了如何使用autotools来自动化管理多个源文件的编译过程。在项目中,随着文件数量增加,手动编写makefile变得复杂。通过autotools,可以创建configure脚本和makefile,简化了lib、src、include等目录中文件的构建。具体步骤包括编写Makefile.am,运行autoscan、aclocal、autoconf、autoheader、automake等命令,生成必要的构建文件。
1271

被折叠的 条评论
为什么被折叠?



