美文网首页
linux下编译C程序

linux下编译C程序

作者: justworld | 来源:发表于2019-06-09 22:31 被阅读0次

    先上张图:


    图片来源见最后
    • autoscan:扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形
    • aclocal:根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”
    • automake:将Makefile.am中定义的结构建立Makefile.in,然后configure脚本将生成的Makefile.in文件转换 为Makefile。如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOOL,它会调用libtoolize,否则它 会自己产生config.guess和config.sub
    • autoconf:将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏

    安装

    我是lubuntu环境,运行命令:

    sudo apt install automake
    sudo apt install autoconf
    

    编译helloworld

    [hello.c]
    #include <stdio.h>
    
    int main(int argc, char const *argv[])
    {
        printf("hello,world");
        return 0;
    }
    

    进源码目录运行命令:
    autoscan
    mv configure.scan configure.ac
    vi configure.ac,把AC_INIT一行改为AC_INIT(hello),紧接下一行加上AM_INIT_AUTOMAKE(hello, 1.0)
    aclocal
    autoheader
    autoconf
    automake,使用automake --add-missing安装缺少的包
    ./configure --prefix(安装目录)
    make
    make install
    至此安装目录就已经生成了可运行程序了。

    看懂makefile

    • 规则
      target(目标)...:prerequisites(依赖)...
      command(命令,tab键开头)
    • 变量
      $@: 目标文件,$^: 所有依赖文件,$<: 第一个依赖文件
    • 文件
      make默认寻找顺序:GNUmakefile、makefile、Makefile,make -f file

    (我这里只是够用为主没有深入,有兴趣可以去automake等相关官网详细了解)

    ——————————————————————————————

    相关文章

      网友评论

          本文标题:linux下编译C程序

          本文链接:https://www.haomeiwen.com/subject/koqoxctx.html