博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成Makefile文件全过程
阅读量:5025 次
发布时间:2019-06-12

本文共 2414 字,大约阅读时间需要 8 分钟。

【1】生成Makefile文件全过程

整体流程如下图:

注意:以下文件根目录为testmake(任意位置新建即可)

(1)测试程序

1.1 建立两个目录:mkdir include source

1.2 编辑sum.h文件

#cd include

#vim sum.h

内容如下:

#include 
int sum(int a, int b);

1.3 编辑sum.c文件

#cd source

#vim sum.c

内容如下:

#include "sum.h"  int sum(int a, int b){      printf("\n----PRINT ARGS A: ----\n%d\n", a);     printf("\n----PRINT ARGS B: ----\n%d\n", b);     return (a + b);  }      int main(int argc , char **argv){      int a = 0, b = 0;      printf("Please INPUT ARGS A and B end by [ENTER]\n");      scanf("%d%d", &a, &b);    int value = sum(a, b);    printf("Execute SUM result: \n%d\n", value);      return 0;}

(2)autoscan

首先,执行autoscan命令,会生成autoscan.log 和 configure.scan两个文件,如下图:

然后,重命名并修改configure.scan文件

cp configure.scan configure.ac

修改内容详见注释部分:

#                                               -*- Autoconf -*-# Process this file with autoconf to produce a configure script.AC_PREREQ([2.63])# 修改点[1]# AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])# 修改后:# FULL-PACKAGE-NAME 为程序名称,VERSION为当前版本, BUG-REPORT-ADDRESS为bug汇报地址AC_INIT(sum, 1.0.1, kaizen@163.com)# 修改点[2] 增加一行如下:AM_INIT_AUTOMAKEAC_CONFIG_SRCDIR([source/sum.c])#AC_CONFIG_HEADERS([config.h])# Checks for programs.AC_PROG_CC# Checks for libraries.# Checks for header files.# Checks for typedefs, structures, and compiler characteristics.# Checks for library functions.# 修改点[3] 增加一行如下:AC_CONFIG_FILES([Makefile])AC_OUTPUT

如上

(3)aclocal

利用configure.ac文件,执行命令aclocal,会生成aclocal.m4 和 autom4te.cache两个文件,如下图:

重要的是aclocal.m4文件

(4)autoconf

利用aclocal.m4文件,执行命令autoconf,会生成configure文件,如下图:

(5)编写Makefile.am文件

内容如下:

#Makefile.am  bin_PROGRAMS    = sum  sum_SOURCES     = include/sum.h source/sum.c  sum_CPPFLAGS    = -I include/

注意:sum为程序命名

如果将sum更改为demo,那么下面两个参数的前缀也需要对应更新,示例:

demo_SOURCES

demo_CPPFLAGS

(6)automake

首先,明确automake必需文件(9个)为:

install-sh  

missing  
INSTALL  
NEWS  
README  
AUTHORS  
ChangeLog  
COPYING  
depcomp

其中,命令automake -a会自动生成以下(5个)文件:

install-sh  

missing  
INSTALL  
COPYING  
depcomp

如下图:

然后,其他(4个)文件手动生成,命令:

touch NEWS README AUTHORS ChangeLog

如下图:

以上准备就绪。最后再执行automake命令,会生成Makefile.in文件,如下图:

(7)./configure

configure命令,利用configure和Makefile.in文件,生成Makefile文件。

(8)make

此时已经生成了sum(可执行文件名字在前面编写Makefile.am的参数时确定)这个,可以通过./sum直接看到运行结果。

如下图:

不过linux系统中一般这里都会再做一步,把它安装到系统里面,这样我们只要在终端输入sum就可以运行程序。

(9)make install

OK。现在直接可以在终端运行程序。如下图:

 

Good Good Study, Day Day Up.

顺序 选择 循环 总结

转载于:https://www.cnblogs.com/Braveliu/p/11340132.html

你可能感兴趣的文章
四六级作文常见错误解析(转载)
查看>>
Tomcat
查看>>
./是当前目录 ../是当前的上一级目录。上上级就是../../一般绝对路径时候常用...
查看>>
linux支持FTP和SFTP服务【1】
查看>>
树的递归与非递归遍历方法
查看>>
每天一个Linux命令(6):rmdir命令
查看>>
oracle连接的三个配置文件(转)
查看>>
Vim配置文件(Vimrc)
查看>>
RecyclerView 局部刷新(获取viewHolder 去刷新)
查看>>
PHP表单(get,post)提交方式
查看>>
使用vbs或者bat脚本修改IE浏览器安全级别和选项
查看>>
Silverlight入门
查看>>
Silverlight动态调用WEBSERVICE,WCF方法
查看>>
LeetCode 895. Maximum Frequency Stack
查看>>
模仿segmentfault 评论
查看>>
一个简单的日志函数C++
查看>>
Java 8 中如何优雅的处理集合
查看>>
IOS程序的启动过程
查看>>
连接Linux下 XAMPP集成环境中部署的禅道的数据库MariaDB
查看>>
Java操作Excel和Word
查看>>