很多时候,我们在网上下载的linux开源软件都会遇到一个问题,就是源码里面没有直接的makefile,但是它有Makefile.ammakefile.in或者它有Makefile.amconfigure.in,这里就不详细解释他们直接的关联,直接给出如何操作生成makefile

具体操作步骤如下:

1. 执行aclocal,产生aclocal.m4文件

aclocal是一个perl 脚本程序,它的定义是:

    aclocal -create aclocal.m4 by scanning configure.ac

aclocal根据configure.in文件的内容,自动生成aclocal.m4文件。而aclocal.m4文件中,包含了生成configure文件所必须的宏。

2. 执行autoconf,生成configure文件

autoconf会根据configure.inaclocal.m4文件,生成configure文件。

3. 执行automake命令,产生Makefile.in

    automake --add-missing

automake会根据Makefile.am文件产生一些文件,包含最重要的Makefile.in。前面所生成的configure,会根据Makefile.in文件,来生成最终的Makefile文件。

4. 执行configure命令,生成Makefile文件

这样,就产生了编译所需要的Makefile文件。运行make,即可编译。

    ./configure

如果我们有了Makefile.ammakefile.in那就可以执行第四步了。

这里在进行第四步的时候很可能会遇到一个问题:

error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.

出现该情况是由于c++编译器的相关package没有安装。 
以Ubuntu为例,解决如下:

#sudo apt-get install build-essential

以RED HAT为例:

# yum install glibc-headers
# yum install gcc-c++

这样子有了makefile之后我们就可以愉快的make了!!

Makefile.am和makefile.in生成Makefile相关推荐

  1. 自动生成Makefile的全过程详解

    automake/autoconf入门 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefil ...

  2. ./configure 自动生成makefile

    新建helloworld目录,里边有一个源码文件helloworld.c. $ autoscan  $ ls  configure.scan helloworld.c 新生成的文件configure. ...

  3. 例解 autoconf 和 automake 生成 Makefile 文件

    http://www.ibm.com/developerworks/cn/linux/l-makefile/ 生成 Makefile 的来龙去脉 首先进入 project 目录,在该目录下运行一系列命 ...

  4. Linux 用qmake快速生成makefile

    1.简介: qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具.是qt工具包的一部分.在Unix&linux上写程式的人大概都碰过Makefile.用 ...

  5. linux新建好文件后怎么编译,使用autoconf生成Makefile并编译工程的步骤

    前言 在Linux下,编译和链接需要用Makefile,而写好一个Makefile可不容易,写出一个规范的Makefile更是麻烦.我们可以利用autoconf来生成一个Makefile,尤其在大型工 ...

  6. 使用Automake和Autoconf生成Makefile

    automake 所产生的 Makefile 除了可以做到程序的自动编译和链接 外,还可以用来生成各种文档(如manual page.info文件),可以将源代码文件包装起来以供发布.所以程序源代码所 ...

  7. linux清除configure文件_在Linux操作系统下自动生成Makefile的方法

    在Linux操作系统下进行开发,编写Makefile似乎是不可缺少的事情.但是对于一个比较大的工程,编写一个符合规范的Makefile并非易事.而且由于Makefile的各种显式,隐式规则,加之平时并 ...

  8. Ubuntu下使用cmake结合CmakeLists.txt生成makefile文件并进行编译

    转自1:https://www.cnblogs.com/cv-pr/p/6206921.html 转自2:https://blog.csdn.net/qqwangfan/article/details ...

  9. linux系统中自动生成snap文件_在Linux操作系统下自动生成Makefile的方法

    在Linux操作系统下进行开发,编写Makefile似乎是不可缺少的事情.但是对于一个比较大的工程,编写一个符合规范的Makefile并非易事.而且由于Makefile的各种显式,隐式规则,加之平时并 ...

最新文章

  1. hdu 2454 Degree Sequence of Graph G
  2. atomic与nonatomic,assign,copy与retain的定义和区别
  3. python乘法口诀表-用python打印99乘法口诀表
  4. 40+张最全Linux/C/C++思维导图,收藏!
  5. 深度学习pytorch--线性回归(二)
  6. cuda 核函数 for循环_【CUDA 基础】4.4 核函数可达到的带宽
  7. c语言实现各种排序,c语言实现各种排序算法
  8. 计算机软件等级认证,中国计算机学会推出软件非专业级别能力认证
  9. MSCI 成份股 清单
  10. 如何使用BetterZip的压缩密码管理器?
  11. 管螺纹如何标注_螺纹知识,这一次搞全了!
  12. PGP加密软件介绍、下载地址(官方发行最新版)及安装教程
  13. 防火墙和代理服务器之间有什么区别
  14. 天朝有一个乞丐姓洪,去天桥要钱 第一天要了1块钱 第二天要了2块钱 第三天要了4块钱 第四天要了8块钱 以此类推 问题: 洪乞丐干10天,收入是多少?
  15. 淘宝七天自动确认收货,可以怎么实现?
  16. Spring源码分析总结(二)-Spring AOP 解析aop:aspectj-autoproxy
  17. 印光大师、净空法师:法师、居士示现神通需注意哪些事项?
  18. Robocup3D项目搭建
  19. 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】
  20. 打卡网红IP品牌奶茶店,好喝又好看的茶天娜

热门文章

  1. 3.4 SE55表维护生成器
  2. aop阻止方法运行_新型AOP高级氧化高浓度COD废水处理系统介绍
  3. 笔记本安装centos7.6网络的配置_可以放入口袋里面的笔记本电脑:国产黑科技,户外工程师必备利器...
  4. java wait 参数_java中wait()和join()方法的区别是什么
  5. 8.0强行转换后变成了7_血糖7至8正常吗?控制标准不能一概而论,看你的血糖应该在多少...
  6. STM32那点事(5)_ADC(中)
  7. python七段数码管绘制秒表_Python绘制七段数码管实例代码
  8. ArrayList理解(5)与vector区别
  9. vue页面传参(多个参数传值)与接参 - 代码篇
  10. Z-blog拓源纯净主题