Makefile.am和makefile.in生成Makefile
https://www.cnblogs.com/bigbear1385/p/6604765.html
Makefile.am和makefile.in生成Makefile
很多时候,我们在网上下载的linux开源软件都会遇到一个问题,就是源码里面没有直接的makefile
,但是它有Makefile.am
和makefile.in
或者它有Makefile.am
和configure.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.in
和aclocal.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.am
和makefile.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