如何使用automake来管理你的编译
来源:互联网 发布:windows优化大师v7.99 编辑:程序博客网 时间:2024/06/11 18:38
原文作者:赵杨
很多入门级Linux编程书籍并没有透露:其实你不用手动编写Makefile文件,GNU老早就提供了一套好用的工具链,可以很方便的生成Makefile文件。 �0�2 你一定知道Linux下很多软件包,特别是GNU的,安装一般只需要执行命令:./configure; make install; 即可方便的完成源码的编译和安装。听说这叫做符合GNU规范的软件源码包 �0�2 这篇短文就是想让我们自己的软件源码包也能达到这个目标。
先混个眼熟,这些工具(命令)依次是:
autoscan
aclocal
autoconf
autoheader
automake
实际使用时,这几个命令的执行顺序也是以上这个顺序。 2 只是调用这几个命令过程中需要我们根据实际情况改一下两个文件:configure.in和Makefile.am
第一步,调用autoscan ,会生成个configure.scan文件,将其改名为configure.in,并改文件内容如下:
-*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(gameserver, 1.0, qjzy2008@163.com )
AM_INIT_AUTOMAKE(gameserver, 1.0)
AC_CONFIG_SRCDIR([main.cpp])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CXX
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T
# Checks for library functions.
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
第二步,新建Makefile.am文件(命令vim Makefile.am),文件内容如下:
AUTOMAKE_OPTIONS = foreign
noinst_PROGRAMS = gateserver
gateserver_SOURCES = main.cpp ../common/gateway/gateway.h\
../common/gateway/gateway.cpp \
../common/gateway/session.h \
../common/gateway/session.cpp \
LIBS = -lzmq -lboost_system -lboost_thread -lglog
Makefile.am文件中noinst_PROGRAMS = gateserver 代表生成程序名称,程序名称_SOURCES配置所需要的源码文件,LIBS配置依赖的库。
第三步,依次调用命令:aclocal; autoconf; autoheader; automake –add-missing;
完成后自动生成了:configure和Makefile。
- 如何使用automake来管理你的编译
- 【分析总结框架记录】如何使用automake来管理你的编译
- 如何使用npm来管理你的Node.js依赖
- 如何使用NPM来管理你的Node.js依赖
- 如何使用NPM来管理你的Node.js依赖
- 本文教你如何使用autoconf、automake等来制作一个以源代码形式(.tar.gz)发布的软件、并可在执行configure时使用自定义参数。
- 使用TaskVision来管理你的项目
- 使用TaskVision来管理你的项目
- 教你如何使用automake生成Makefile文件
- 教你如何使用automake生成Makefile文件
- 如何使用automake
- 使用automake来写makefile
- 使用automake,autoconf来生成开源标准的Makefile
- 使用webpack+babel来"编译"你的JS代码(上)
- 使用webpack+babel来"编译"你的JS代码(下)
- 使用webpack来"编译"你的css和图片初步
- 使用Mingle来管理你的敏捷项目
- 使用NPM来管理你的Node.js依赖
- Android新版本开发工具的Android SDK Manager只有4.3及出现SSLPeerUnverified peer not authenticated解决办法
- App自适应draw9patch不失真背景
- 正则表达式
- vs2010连接mysql数据库(含win32和x64两种平台)
- mysql数据库解决数组不能进行位操作的问题
- 如何使用automake来管理你的编译
- H.264编码
- aaaaaaaaaaaaaaaaaa
- Set集合去除重复元素
- Java核心编程五:泛型概念
- 三维凸包模板_HDU 3662 3D Convex Hull
- 这种情况下可以用位存储
- 零基础学编程,VB / Java / C / C# / C++ 等哪个更容易上手?
- js验证电子邮箱的正则表达式使用