Makefile的一个具体的实例
来源:互联网 发布:高速公路的数据 编辑:程序博客网 时间:2024/04/30 07:05
工程中的代码分别存放在add/add_int.c、add/add_float.c、add/add.h、sub/sub_int.c、sub/sub_float.c、sub/sub.h、main.c中。
文件main.c
#include <stdio.h>
#include "add.h"
#include "sub.h"
int main(void)
{
}
加操作
#ifdef __ADD_H__
#define __ADD_H__
extern int add_int(int a, int b);
extern float add_float(float a, float b);
#endif
float add_float(float a, float b)
{
}
int add_int(int a, int b)
{
}
减操作
#ifdef __ADD_H__
#define __ADD_H__
extern float sub_float(float a, float b);
extern int sub_int(int a, int b);
#endif
float sub_float(float a, float b)
{
}
int sub_int(int a, int b)
{
}
命令行编译程序:
#gcc -c add/add_int.c -o add/add_int.o
#gcc -c add/add_float.c -o add/add_float.o
#gcc -c sub/sub_int.c -o sub/sub_int.o
#gcc -c sub/sub_float.c -o sub/sub_float.o
#gcc -c main.c -o main.o
#gcc -o casu add/add_int.o add/add_float.o sub/sub_int.o sub/sub_float.o main.o
#链接生成cacu
多文件的makefile:
#生成casu,“;”右边为目标
casu:add_int.o add_float.o sub_int.o sub_float.o main.o
#生成add_int.o的规则,将add_int.c编译生成目标文件add_int.o
add_int.o:add/add_int.c add/add.h
#生成add_float.o的规则
add_float.o:add/add_float.c add/add.h
#生成sub_int.o的规则
sub_int.o:sub/sub_int.c sub/sub.h
#生成sub_float.o的规则
sub_float.o:sub/sub_float.c sub/sub.h
#生成main.o的规则
main.o:main.c add/add.h sub/sub.h
#清理规则
clean:
使用自定义变量的makefile文件:
CC = gcc
CFLAGES =
OBJS = add/add_int.o add/add_float.o \
TARGET = casu
RM = rm -f
$(TARGET):$(OBJS)
$(OBJS):%.o:%.c
clean:
使用预定义变量的makefile文件:
CFLAGES =
OBJS = add/add_int.o add/add_float.o \
TARGET = casu
$(TARGET):$(OBJS)
$(OBJS):%.o:%.c
clean:
使用自动变量的makefile文件:
CFLAGES =
OBJS = add/add_int.o add/add_float.o \
TARGET = casu
$(TARGET):$(OBJS)
$(OBJS):%.o:%.c
clean:
使用搜索路径的makefile文件:
CFLAGES =
OBJSDIR = .objs
VPATH = add:sub:.
OBJS = add_int.o add_float.o sub_int.o sub_float.o main.o
TARGET = casu
$(TARGET):$(OBJSDIR) $(OBJS)
$(OBJS):%.o:%.c
$(OBJSDIR):
clean:
使用自动推导规则的makefile:
CFLAGS = -Iadd -Isub -O2
VPATH=add:sub
OBJS = add_int.o add_float.o sub_int.o sub_float.o main.o
TARGET = cacu
$(TARGET):$(OBJS)
clean:
使用函数的makefile文件:
CC = gcc
VPATH =add:sub
CFLAGES =
TARGET = casu
DIRS = sub add .
FILES = $(foreach dir, $(DIRS),$(wildcard $(dir)/*.c))
OBJS = $(patsubst %.c,%.o,$(FILES))
$(TARGET):$(OBJS)
clean:
转:http://blog.sina.com.cn/s/blog_73d4d5fa0100paiy.html
- Makefile的一个具体的实例
- Makefile的一个具体的实例
- Makefile的一个具体的实例
- Makefile的一个具体的实例
- 一个经典的Makefile实例
- 编写一个makefile的简单实例
- 编写一个makefile的简单实例
- 最简单的一个makefile实例
- ExecutorService的具体实例
- 通过一个具体的实例来学习hive
- MFC:只允许产生一个应用程序实例的具体实现
- 简单的Makefile实例
- 我的Makefile实例
- Makefile的实例讲解
- Makefile的实例讲解
- 一个带类似IDE目录树的makefile实例
- 具体的一个实例,展示如何访问实例变量和调用成员方法
- 具体的一个MD5实现
- [2014-07-18]JAVA笔记_Object类、String类
- 【HTML5最容易犯的错】HTML5的section可不要作为div的替代品
- C数据类型
- oracle mssql mysql db2 取前几条数据
- filezilla安装的问题GLIBCXX_3.4.15
- Makefile的一个具体的实例
- 无监督特征学习——Unsupervised feature learning and deep learning
- 新的开始
- apache phoenix简单部署测试
- Extjs4 Combobox 联动始终出现loading错误的解决办法
- 获取xml信息并转为string
- UVA Bandwidth
- cocos2dx3.0 制作音效开关
- Objective C 快速入门学习三