首页 > 其他分享 >生成 makefile

生成 makefile

时间:2022-12-30 12:12:24浏览次数:54  
标签:文件 configure makefile Makefile 生成 aclocal

 

Makefile.am和makefile.in生成Makefile

https://www.cnblogs.com/bigbear1385/p/6604765.html

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了!!

=============================================================================================================================

一下来自:https://www.cnblogs.com/guxuanqing/p/16626162.html

如何利用configure.ac和Makefile.am生成Makefile

环境是Ubuntu22.04

1、aclocal命令根据configure.ac文件的内容,自动生成aclocal.m4文件。

 

2、autoconf命令会根据configure.ac和aclocal.m4文件,生成configure文件。

  

3、autoheader命令,生成文件config.h.in

 

4、libtoolize命令,生成ltmain.sh

 

5、automake命令会根据Makefile.am文件产生一些文件,包含最重要的Makefile.in。

6、 到这里就可以直接make了

./configure./configure make
sudomakeinstall执行完make或makeinstall,可以利用命令:echosudomakeinstall执行完make或makeinstall,可以利用命令:echo? 来检测是否执行成功。返回值为0,则为成功。安装后可执行文件默认放在/usr /local/bin。

 

automake貌似工序过于复杂,在这里其实是没有必要做这么复杂的工作的,完全可以将其抽象成一个模板性质的脚本将各个工序都集中到脚本里面,使用者只需要稍微修改自己的配置文件即可,直白点就是使用autogen.sh(模板化脚本,可以网上搜一个)。在此也使用这个脚本,然后再代码中只需要适当修改configure.ac和Makefile.am文件即可

步骤如下:

./autogen.sh

./configure && make && make install

 

 

 

 

 

 

 

=============================================================================================================================

 

 

 

 

 

 

 

=============================================================================================================================

 

 

 

 

 

 

 

参考:

https://www.cnblogs.com/bigbear1385/p/6604765.html

 

标签:文件,configure,makefile,Makefile,生成,aclocal
From: https://www.cnblogs.com/rebrobot/p/17014583.html

相关文章

  • C# 在Word文档中生成条形码
    C#在Word文档中生成条形码简介条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称、制造商、类别、价格等。目前,条形码在我们的日常生活中有着......
  • C# Excel 生成图表,添加趋势线、误差线
    Excel图表能够将数据可视化,在图表中另行添加趋势线和误差线,可对数据进行进一步的数据分析和统计的可视化处理。Excel中的趋势线可用于趋势预测/回归分析,共6中类型:指数(X),线性(L......
  • 利用Python制作本地Excel的查询与生成的程序
    目录​​前言​​​​需求​​​​实验步骤​​​​Excel预览图片​​​​查询​​​​追加查询结果到Excel​​​​完整代码​​前言大家好我是毕加锁(锁!)今天教大家利......
  • Python办公自动化|批量生成请假条
    大家好,我是毕加锁本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word,主要将涉及以下三个知识点​​openpyxl​​ 读取Excel文件​​python-docx​​ ......
  • ios的idp/iep证书的生成方法,无苹果电脑
    在这个多端开发的年代,出现了很多优秀的开发框架,比如hbuilder和uniapp等等。我们可以使用这些框架来开发APP,假如我们要打包ios的app,则需要一个idp/iep证书。那么这个证书是......
  • 用freemarker生成静态页面
    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写   FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序虽然FreeMarker具......
  • linux Makefile 如何将生成的 .o 文件放到指定文件夹
    一、Makefile文件为了方便分析,直接上文件,Makefile文件中的内容如下所示:##Makefile#编译的.o文件和.c文件在同一路径下#$(info"start...")#可执行文件名PROJE......
  • django项目中使用swagger来实现接口文档自动生成
    一、Swagger一般我们在对接前后端的时候,都需要提供相应的接口文档。对于后端来说,编写接口文档即费时费力,还会经常因为没有及时更新,导致前端对接时出现实际接口与文档不一......
  • vs2022 打包多个类生成nuget包
    1.单个类直接右键项目,打包就生成nuget包了2.如果是多个类想打成一个包,新建一个类,然后将所有其他类引入,打包新建的类就可以了,3.更改版本号等信息,右键项目属性-包-看到包版......
  • ABAP 动态生成内表方法一
    在做动态更新程序的时候,要注意两点:1.使用modify(p_tabname)from<dyn_wa>.的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,de......