生成makefile实战例子

    xiaoxiao2024-12-16  18

    我的总结:


    makefile生成过程:4个步骤,层层依赖,每一个步骤都依赖于上一个步骤的结果。 aclocal.m4文件→→→configure文件→→→为源文件编写makefie.am→→→Makefile.in→→→Makefile文件


    简化生成makefile的过程:只需要4步:

    执行aclocal,产生aclocal.m4文件 aclocal是一个perl 脚本程序,它的定义是:

    aclocal -create aclocal.m4 by scanning configure.ac

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

    执行autoconf,生成configure文件 autoconf会根据configure.in和aclocal.m4文件,生成configure文件。

    执行automake命令,产生Makefile.in automake --add-missing

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

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

    makefile生成过程:aclocal.m4文件→→→configure文件→→→为源文件编写makefie.am→→→Makefile.in→→→Makefile文件


    这个只是针对文件,并不是代码,重点看文件的操作。

    主要还是能够看懂makefile。

    每个目录下都有 makefile.in ,makefie.am ,

    自动生成makefile例子   这个例子共有三个C文件,main.c,add/add.c和sub/sub.c。源代码如下:

    /main.c/

    #include

    int main(void)

    {

    printf("%d\n",add(sub(100,5),1));

    return 0;

    }

    /* add/add.c */

    int add(int x,int y)

    {

    return x+y;

    }

    /* sub/sub.c */

    int sub(int x,int y)

    {

    return x-y;

    }

    Q:自动生成makefile需要手动输入什么文件,作用是什么?

    按照makefile生成的流程执行,需要手动输入的文件只有两类configure.in和makefile.am。

    操作在包含源文件的项目目录下进行。    (1). 运行autoscan,生成文件configure.scan。     (2). 修改configure.scan,改名为configure.in。    (3).运行autoheader,生成文件configure.h.in(现在一般改为configure.ac)。configure.in里有宏AC_CONFIG_HEADER()时用。     (4).运行libtoolize,生成一些支持文件,ltmain.sh。需要用libtool生成共享库用。     (5).运行allocal,生成aclocal.m4。     (6). 运行autoconf,生成configure。     (7).为源文件编写makefie.am,每一个包含源文件的目录和子目录都有一个makefile.am。     (8).运行automake,生成makefile.in,每个包含makefile.am的子目录都生成makefile.in。   automake -a选项可以补齐文件config.guess,config.sub,install-sh,missing,depcomp。     (9).运行./configure,生成config.status,config.h,makefile。     (10).运行make,生成中间文件对象文件,库文件,最后生成可执行文件。

    怎么样 最快地学会配置生成makefile,直接上hello world

    1、建目录   在你的工作目录下建一个helloworld目录,我们用它来存放helloworld程序及相关文件,如在/home/my/build下:   $ mkdir helloword   $ cd helloworld   2、 helloworld.c   然后用你自己最喜欢的编辑器写一个hellowrold.c文件,如命令:vi helloworld.c。使用下面的代码作为helloworld.c的内容。   int main(int argc, char** argv)   {   printf(“Hello, Linux World!\n”);   return 0;   }   完成后保存退出。   现在在helloworld目录下就应该有一个你自己写的helloworld.c了。   3、生成configure

    最新回复(0)