您的位置:首页 > 其它

autoscan autoconf自动生成 makefile

2013-07-01 11:12 197 查看
http://kain.is-programmer.com/posts/30648.html

1.首先执行autoscan

将生成的configure.scan改名为configure.in

修改后的为

# -*- Autoconf -*-

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

AC_PREREQ([2.65])

AC_INIT(AI, 1.0, zhaoxiahust@gmail.com)

AC_CONFIG_SRCDIR([getinfo.cpp])

AC_CONFIG_HEADERS([config.h])

AM_INIT_AUTOMAKE(AI,1.0)

# Checks for programs.

AC_PROG_CXX

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT([Makefile])

其中需要注意的是AC_PROG_CXX为c++编译器

如果是.c文件则为AC_PROG_CC

2.运行aclocal生成一个“aclocal.m4”文件和一个缓冲文件夹autom4te.cache,该文件主要处理本地的宏定义。

3.运行autoconf,生成configure

4.运行 autoheader,它负责生成config.h.in文件。该工具通常会从“acconfig.h”文件中复制用户附加的符号定义,因此此处没有附加符号定义,所以不需要创建“acconfig.h”文件。

创建一个 Makefile.am.这一步是创建Makefile很重要的一步,automake要用的脚本配置文件是Makefile.am,用户需要自己创建相应的文件。之后,automake工具转换成Makefile.in。

Makefile.am内容

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=AI
AI_SOURCES=getinfo.cpp main.cpp check.cpp

使用automake对其生成“configure.in”文件,在这里使用选项“—add-missing”可以让automake自动添加有一些必需的脚本文件。

5.运行automake --add-missing

6.运行./configure,在这一步中,通过运行自动配置设置文件configure,把Makefile.in变成了最终的Makefile。

7.make

生成可执行程序AI

OVER

补充:

今天又将文件分在了source和include目录虾米,唯一要改的就是AI_SOURCES=source/getinfo.cpp source/main.cpp source/check.cpp

这个地方

因为又涉及到了简单多线程编程,所以要用到pthread库,但是由于不是linux的默认链接库,所以要在Makefile.am中添加

AI_LDFLAGS=-lpthread

_LDFLAGS:链接选项,对应gcc命令的-L,-I,-shared等选项

还要在configure.in中添加

# Checks for libraries.

AC_CHECK_LIB([pthread], [main])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: