生成 makefile

 

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
sudomakeinstallmakemakeinstallechosudomakeinstall执行完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

 

posted @   redrobot  阅读(368)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示