清泛IT社区
标题:
Linux automake自动编译全攻略
[打印本页]
作者:
清泛网
时间:
2015-09-06 10:19
标题:
Linux automake自动编译全攻略
通过一个简单但经典、全面的例子教大家如何使用automake自动编译自己的工程。
automake通常用于大型工程的自动化编译,我们只需编写Makefile.am,它的规则比直接编写Makefile简单得多(
Makefile不熟悉的要好好学习一下
),而且也灵活的多。使得开发者只需关心代码逻辑,不必过于关心项目的编译配置。
automake流程图示如下:
(, 下载次数: 4018)
上传
点击文件名下载附件
下载积分: 经验 1
核心配置如下:
configure.in:
AC_INIT([test], [1.0.0], [bugreport.test.com])
#指定项目名称和版本号
AM_INIT_AUTOMAKE(test, 1.0.0)
#检查编译器
AC_PROG_CC
AC_PROG_LIBTOOL
#输出Makefile文件
AC_CONFIG_FILES([
Makefile
lib/Makefile
])
AC_OUTPUT()
复制代码
build.sh:(
脚本说明了automake
执行步骤及输出
)
#!/bin/sh
# configure.in -> aclocal.m4
aclocal
# aclocal.m4 -> configure
autoconf
# avoid: required file `build/ltmain.sh' not found
# --copy copy files rather than symlinking them
# --debug enable verbose shell tracing
# --force replace existing files
libtoolize --automake --copy --force
# Makefile.am + configure.in -> Makefile.in
automake --add-missing
./configure
make
复制代码
主目录Makefile.am:
AUTOMAKE_OPTIONS=foreign
#子目录
SUBDIRS = lib
#生成的可执行文件名
bin_PROGRAMS = test
#该可执行文件的源文件
test_SOURCES = test.c
#该可执行文件依赖的库文件
test_LDADD = lib/libcalc.la
复制代码
lib目录下Makefile.am:
AUTOMAKE_OPTIONS=foreign
#生成的库文件的文件名
lib_LTLIBRARIES= libcalc.la
#该库文件源 头文件
noinst_HEADERS = calc.h
#该库文件源文件
libcalc_la_SOURCES = calc.c
复制代码
代码如下:
lib目录下头文件calc.h:
#include <stdio.h>
int add(int a, int b);
复制代码
lib目录函数实现calc.c:
#include "calc.h"
int add(int a, int b)
{
return a + b;
}
复制代码
主目录下测试代码test.c:
#include <stdio.h>
#include "lib/calc.h"
int main(int argc, char** argv)
{
int sum = add(1, 2);
printf("sum:%d\n", sum);
return 0;
}
复制代码
编译及执行结果:
(, 下载次数: 3989)
上传
点击文件名下载附件
下载积分: 经验 1
(, 下载次数: 4011)
上传
点击文件名下载附件
下载积分: 经验 1
(, 下载次数: 4017)
上传
点击文件名下载附件
下载积分: 经验 1
执行:
(, 下载次数: 4079)
上传
点击文件名下载附件
下载积分: 经验 1
代码点此下载:
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 经验 1
欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/)
Powered by Discuz! X3.3