C程序自动构建工具

参考网上的文章,试了一下程序自动构建工具,目的是要编译一个动态库/静态库。

测试环境:

ubuntu 12.04 X86-64 

autoscan (GNU Autoconf) 2.68

autoheader (GNU Autoconf) 2.68

autoconf (GNU Autoconf) 2.68

aclocal (GNU automake) 1.11.3

automake (GNU automake) 1.11.3

libtoolize (GNU libtool) 2.4.2


1. 新建一个工程,目录结构如下(这些文件是要自己动手编写的,Makefile.am后面会有例子;AUTHORS/ChangeLog/NEWS/README是几个标准文件,内容可以留空):

project

├── AUTHORS
├── ChangeLog
├── Makefile.am
├── NEWS
├── README
└── src
    ├── cpuinfo.c
    ├── cpuinfo.h
    └── Makefile.am

2.安装自动构建工具(某些工具是安装ubuntu的时候就已经自动安装上的)

sudo apt-get install autoconf automake libtool make gcc


3. 编写Makefile.am

Makefile.am

AUTOMAKE_OPTIONS=foreign
SUBDIRS=src 

src/Makefile.am
AUTOMAKE_OPTIONS=foreign
lib_LTLIBRARIES=libcpuinfo.la
libcpuinfo_la_SOURCES=cpuinfo.c
include_HEADERS=cpuinfo.h

Makefile.am一般格式
表 1Makefile.am一般格式



4. 在工程目录下执行autoscan,目录下会生成autoscan.log和configure.scan。把configure.scan名称改为configure.ac


5. 修改configure.ac内容,如下:

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.68])
AC_INIT([libcpuinfo], [1.0.0], [huo@huo.com])
AC_CONFIG_SRCDIR([src/cpuinfo.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE

# Checks for programs.
AC_PROG_CC
AC_PROG_LIBTOOL

# Checks for libraries.

# Checks for header files.
AC_CHECK_HEADERS([fcntl.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT([Makefile
           src/Makefile])


6. 依次执行以下命令:

aclocal

autoheader

libtoolize --automake --copy --force

automake –-add-missing

autoconfig

至此,configure就已经生成了


7. 生成Makefile && 编译

./configure --prefix=$(pwd)/output

make

make install
顺利的话,此时在output目录下就会生成include和lib两个目录,里面包含了头文件cpuinfo.h和两个库libcpuinfo.so/libcpuinfo.a。


configure.ac每个项的意思暂时没搞懂,先用起来,再深入学习。


附参考文章:

http://www.ibm.com/developerworks/cn/linux/l-makefile/index.html

http://www.gnu.org/software/autoconf/manual/autoconf-2.68/html_node/index.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值