小白版Linux下gcc与Makefile编译

利用C语言实现,利用gcc进行编译。同时需要利用autotools工具生成Makefile文件,并利用make工具和生成的Makefile进行编译。

准备工作

(在服务器上操作时可直接按以下步骤,没服务器时需要下载虚拟机)
1.安装vi编辑器
2.安装gcc编译环境
3.安装autotools系列工具

创建文件夹

进入指定目录,创建并进入test1

在这里插入图片描述

在终端窗口利用vi编辑器来编辑源程序,进入vi编辑器后在键盘上按A,进行编辑,编辑完成后点击键盘上的Esc进行保存,然后输入:wq退出编辑器。
在这里插入图片描述

gcc编译源程序四阶段

  • 预处理
  • 编译
  • 汇编
  • 链接
  1. gcc test.c

将test.c预处理、汇编、编译并链接形成可执行文件a.out

在这里插入图片描述

  1. ./a.out

执行文件

在这里插入图片描述

  1. gcc test.c -o test

    将test.c预处理、汇编、编译并链接生成可执行文件test。-o选项表示要求编译器输出的可执行文件名为test
    在这里插入图片描述

  2. gcc -E test.c -o test.i

    将test.c预处理输出test.i文件

在这里插入图片描述

  1. gcc -S test.i

    将预处理输出文件汇编成test.s文件

在这里插入图片描述

  1. gcc -c test.s

    将汇编输出文件编译输出test.o文件

在这里插入图片描述

  1. gcc test.o -o test

    将编译输出文件链接成最终可执行的test文件。输入./test即可运行成功。
    在这里插入图片描述

autotools

此处在以上文件基础上进行编译

  1. 使用Autoscan工具自动创建文件:autoscan.log,configure.scan
    在这里插入图片描述

  2. 将configure.scan的文件名修改为congigure.in(也可以修改为configure.ac)

在这里插入图片描述

  1. 利用vi编辑器修改configure.in文件

    (1)将AC_INIT里面的参数修改为:AC_INIT(test,1.0,[email protected])

    (2) 添加宏AM_INIT_AUTOMAKE(test,1.0)

    (3) 在AC_OUTPUT后面加上([Makefile])

在这里插入图片描述

  1. 使用aclocal,生成aclocal.m4和autom4te.cache(用于处理本地的宏定义)

在这里插入图片描述

  1. 使用autoconf,生成configure脚本

在这里插入图片描述

  1. 使用autoheader,生成congig.h文件。

在这里插入图片描述

  1. 创建Makefile.am文件

Automake工具会根据configure.in中的参量把Makefile.am转换成Makefile.in文件。所以在使用automake之前我们需要自己创建Makefile.am文件

AUTOMAKE_OPTIONS=foreign      

bin_PROGRAMS=hello
hello_SOURCES=hello.c

在这里插入图片描述

8.使用Automake使其生成Makefile.in文件。这里需要使用选项–add-missing,可以让automake自动添加必需的脚本文件。

在这里插入图片描述

  1. 使用configure,运行自动配置设置文件configure,把Makefile.in变成Makefile。

在这里插入图片描述

  1. 测试

在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>