zoukankan      html  css  js  c++  java
  • Makefile.am和makefile.in生成Makefile

    Makefile.am和makefile.in生成Makefile

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

    具体操作步骤如下:

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

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

        aclocal -create aclocal.m4 by scanning configure.ac
    • 1

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

    2. 执行autoconf,生成configure文件

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

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

        automake --add-missing
    • 1

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

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

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

        ./configure
    • 1

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

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

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

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

    #sudo apt-get install build-essential
    • 1

    以RED HAT为例:

    # yum install glibc-headers
    # yum install gcc-c++
    • 1
    • 2

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

    下载bsd0.06源码找不到makefile

  • 相关阅读:
    MQTT的编译和安装(mosquitto)
    四、固件分析-固件逆向
    三、固件分析-固件提取
    二、硬件分析-电路分析
    一、硬件分析
    gdb调试
    AES加密中遇到的坑
    多线程中快速定位段错误位置
    理想的数据加密流程
    Centos进入单用户修改root密码
  • 原文地址:https://www.cnblogs.com/bigbear1385/p/6604765.html
Copyright © 2011-2022 走看看