Autotools知识点
最近研究了下glog使用autotools编译方法的脚本文件,略有所得
configure.ac
AC_INIT初始化一些信息 Package Version ReportBug
AC_CONFIG_MACRO_DIR([m4])加载 m4目录下的规则脚本 应该需要aclocal一下先,把规则集成到aclocal.m4
AM_CONFIG_HEADER(src/config.h)生成config.h,内容由一些函数定义,如AC_DEFINE。应该需要autoconf autoheader(生成config.h.in) ./configure(生成config.h)
AC_CANONICAL_HOST检测系统,得到如build host cpu等参数
AC_CONFIG_SRCDIR([src])检测src目录是否存在,也可以验证文件的存在
AM_CONDITIONAL([xxx],[条件])如果满足条件,xxx会是true吧,但是只能在Makefile.am使用ARM,在configure.ac是没含义的
AC_HEADER_STDC检测stdlib.h stdarg.h string.h float.h ctype.h是否存在,并定义相应宏到config.h
AC_CHECK_HEADERS([unistd.h], [ac_cv_have_unistd_h=1], [ac_cv_have_unistd_h=0])检测头文件存在与否,会定义HAVE_UNISTD_H到config.h,
AC_CHECK_HEADER只有检测的作用,其实unistd上面那个macro也检测了,但是要用到ac_cv_have_unistd_h,所以有检测了一次
AC_CHECK_SIZEOF(void *)也会生成一个宏到config.h
AC_DEFINE(HAVE_FCNTL, 1,[ if you have the `fcntl' function])会定义一个macro到config.h
AC_SUBST(xxx)会把变量向下级传递,AC_CONFIG_FILES()内的文件应该都可以接收到,比如通过xxx.h.in可以生存xxx.h,Makefile.am怎么使用还不清楚(看了下Makefile存在下传的变量,那么直接使用就好了,在Makefile.am里面)
Makefile.am
暂时感觉就是一些简单的规则,至于怎么规定安装那些文件,比如可执行文件需要的库,还有规定哪些需要打包等等,我也没搞太清楚,以后需要再弄清吧,现在单纯生成可执行文件就好,尝试过安装时顺便安装依赖的library,失败
Autotools知识点的更多相关文章
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- ASP.NET MVC开发:Web项目开发必备知识点
最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...
- UWP开发必备以及常用知识点总结
一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- lucene 基础知识点
部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...
- DoraCMS 源码知识点备注
项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...
- 在 Linux 中使用 Eclipse 和 Gnu Autotools 管理 C/C++ 项目
在我该系列的之前的所有随笔中,都是采用 Linux 发行版自带的包管理工具(如 apt-get.yum 等)进行软件的安装和卸载,从来没有向大家展示使用源代码自行编译安装软件的方法.但是长期混迹于 U ...
- atitit 商业项目常用模块技术知识点 v3 qc29
atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...
- HTML5知识点总结
HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...
随机推荐
- HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类
HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...
- 老男孩python学习自修第十二天【常用模块之生成随机数】
常用函数 import random random.random() 生成0到1之间的小数 random.randint(begin, end) 生成[begin, end]之间的整数 random. ...
- 八、.net core 通过数据库配置文件连接操作数据库
一.创建DotNetCore项目 直接创建core项目并不勾选docker支持 二.nuget进行连接MySQL程序集的下载安装 1.MySql.Data.EntityFrameworkCore方式 ...
- 使用javaWeb的二大(Listener、Filter)组件实现分IP统计访问次数
分析: 统计工作需要在所有资源之前都执行,那么就可以放到Filter中. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计 用什么东西来装载统计的数据.Map<String,Integer ...
- java JSP自定义标签
来至: http://blog.csdn.net/jiangwei0910410003/article/details/23915373 http://blog.csdn.net/jiangwei09 ...
- 只要访问url地址 那么容器就会根据地址进行对象的创建
只要访问url地址 那么容器就会根据地址进行对象的创建
- Android 修改 Menu字体颜色
转载:http://blog.csdn.net/jayyuz/article/details/55260996 @Override public boolean onCreateOptionsMenu ...
- mysql 0x80004005 unable to connect to any of the specified mysql hosts
语言:c# 问题:偶尔会出现连不上mysql 报标题的这个错误. 解决方法:把server = localhost 改为 =127.0.0.1 或者静态IP ,按着改暂时没出现了,继续观望!
- codevs 2606 约数和(分块优化数学公式 )
题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...
- Libre OJ 130、131、132 (树状数组 单点修改、区间查询 -> 区间修改,单点查询 -> 区间修改,区间查询)
这三题均可以用树状数组.分块或线段树来做 #130. 树状数组 1 :单点修改,区间查询 题目链接:https://loj.ac/problem/130 题目描述 这是一道模板题. 给定数列 a[1] ...