linux makefile 编译多个.c文件 实例
2024-08-29 14:19:25
本例由 main.c add.c sub.c add_sub.h 四个文件组成:编写Makefile执行程序
/*************************************************************************
> File Name: main.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:40:22 AM CST
************************************************************************/ #include<stdio.h>
#include"add_sub.h"
int main()
{
printf(" 2 + 3 = %d\n", add(, ));
printf(" 2 - 3 = %d\n", sub(, ));
return ;
}
/*************************************************************************
> File Name: add.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:36:26 AM CST
************************************************************************/
#include "add_sub.h" int add(int a, int b)
{
return a + b;
}
/*************************************************************************
> File Name: sub.c
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:37:54 AM CST
************************************************************************/ #include "add_sub.h" int sub(int a, int b)
{
return a - b;
}
/*************************************************************************
> File Name: add_sub.h
> Author:
> Mail:
> Created Time: Tue 25 Jul 2017 10:38:53 AM CST
************************************************************************/ #ifndef _ADD_SUB_H
#define _ADD_SUB_H
int add(int a, int b);
int sub(int a, int b);
#endif
Makefile的内容:
我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中,然后在该目录下直接输入命令“make”,就会在当前目录下找名字叫“Makefile”或“makefile”的文件,可以生成执行文件main。
main: add.o sub.o main.o
gcc add.o sub.o main.o -o main add.o: add.c add_sub.h
gcc -c add.c -o add.o sub.o: sub.c add_sub.h
gcc -c sub.c -o sub.o main.o:main.c add_sub.h
gcc -c main.c -o main.o
clean:
rm -rf *.o main
生成方法必须以TAB开头;若尝试用空格缩进会出现错误!
实验结果:
如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下“make clean”就可以了。
最新文章
- hdu 4781 Assignment For Princess (2013ACMICPC 成都站 A)
- Android开发之自定义圆角矩形图片ImageView的实现 - Jamy Cai
- 1297 - Largest Box(三分)
- TreePuzzle 一点感想
- Delphi在Vasta/win 7下通过UAC控制
- ADO.NET 基础学习笔记1
- span的title标签中的换行
- 全栈开发工程师微信小程序-中(下)
- VS2015中配置Eigen
- 使用sshpass方式实现ssh自动登录
- Spark SQL例子
- shell关于变量的操作
- pig简介
- (转)JavaScript escape() 函数(该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。)
- web程序快速开发
- JS-json-1
- 20145322 《网络对抗》 MSF基础应用1
- 深入理解Aspnet Core之Identity(1)
- Map 综述(三):彻头彻尾理解 ConcurrentHashMap
- 中线,基线,垂直居中vertical-align:middle的一些理解