学习使用AutoMake1.9的自动生成工程文件(三)——层叠型加引用静态库工程实践过程

来源:互联网 发布:rhino执行js方法 编辑:程序博客网 时间:2024/06/11 17:01
经过本人不懈的努力终于再Mac上面,使用Auto工具完成了自动编译工程

现在记录我编译层叠式工程的过程:

project /
            src /                              这里是main.cpp
            include /                     这里是file1.cpp file.h 和 生成 libfile1.a

(1)找到libtool和ltmain.sh
>which libtool
/usr/bin/libtool

>cd /usr/
>find . -name ltmain.sh
/usr/lib/php/build/ltmain.sh
/usr/share/libtool/libltdl/ltmain.sh
/usr/share/libtool/ltmain.sh

>cp /usr/share/libtool/ltmain.sh 到你的目录project下面

(2)将AUTHORS、ChangeLog、NEWS、README拷过去。

(3)编写Makefile.am

project下的Makefile.am就一样:SUBDIRS = src include

inlcude下的:
noinst_LIBRARIES = libfile1.a
libfile1_a_SOURCES 
= file1.h file1.cpp

INCLUDE 
= -I@top_srcdir@/

src下的:
bin_PROGRAMS = hello
hello_SOURCES 
= file1.h main.cpp

LDADD 
= ../include/libfile1.a


(4)$ >autoscan,得到configure.scan之后,修改成:
#                                               -*- Autoconf -*-
# Process 
this file with autoconf to produce a configure script.

AC_PREREQ(
2.61)
AC_INIT(hello, 
1.0, aa@163.com)
AC_CONFIG_SRCDIR([src
/main.cpp])
AC_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(hello, 
1.0)

# Checks 
for programs.
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_LIBTOOL

# Checks 
for libraries.

# Checks 
for header files.

# Checks 
for typedefs, structures, and compiler characteristics.

# Checks 
for library functions.

AC_CONFIG_FILES([Makefile
                 include
/Makefile
                 src
/Makefile])
AC_OUTPUT
红色部分自己添加的。

(5)$ > autoheader

(6)$ > autoconf

(7)$ > automake -a
原创粉丝点击