• 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

  • 相关阅读:
    log4net使用封装,无缝切换 dotnet 和 dotnetcore
    使用 certbot 申请泛域名https证书
    StackExchange.Redis中文使用文档
    在 asp.net core 中使用类似 Application 的服务
    不一样的 SQL Server 日期格式化
    你可能不知道的 docker 命令的奇淫怪巧
    [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
    [k8s]k8s 1.9(on the fly搭建) 1.9_cni-flannel部署排错 ipvs模式
    [k8s] kubelet单组件启动静态pod
    [svc]runinit管理多进程
  • 原文地址:https://www.cnblogs.com/bigbear1385/p/6604765.html
Copyright © 2020-2023  润新知