Linux(六)

自定义头文件

自定义头文件中写什么

//1.引入库头文件
//2.宏定义
//3.数据类型的定义
//4.枚举类型的定义
//5.函数声明

在这里插入图片描述

如何引入头文件

#include <stdio.h> // <> 表示从系统库路径开始引入头文件 (引入库头文件)
#include "stu.h" //"" 表示从当前工作目录引入头文件 (引入自定义头文件)

在这里插入图片描述

条件编译

#ifndef 标号(一般和头文件同名)
#define 标号
//1.引入库头文件
//2.宏定义
//3.数据类型定义
//4.枚举定义
//5.函数声明
#endif

条件编译作用

避免头文件被重复引入

#ifndef _STU_H
#define _STU_H
//1.引入库头文件
//2.宏定义
//3.数据类型定义
//4.枚举定义
//5.函数声明
//1.引入库头文件
#include <stdlib.h>
//2.宏定义
#define N 5
#define M 20
//3.数据类型定义
//1.定义一个结构体数据类型,并取别名
typedef struct student
{
char name[M];
int height;
}Stu;
//4.枚举定义
//5.函数声明
void menu(void);
void input(Stu * ps,int size);
void output(Stu * ps,int size);
Stu * calpMax(Stu *ps,int size);
Stu * calpMin(Stu *ps,int size);
void swap(Stu * pMax,Stu * pMin);
void sortByHeight(Stu * ps,int size);
#endif

gcc工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Make 工作管理器

什么是Make

Make是一个工具程序,它是一种转换文件形式的工具,转换的目标称为叫target.
在许多现代软件的开发中,集成开发环境已经取代了Make,但是在Unix环境中,仍然有许多任务工程师采用Make来协助软件开发.从事嵌入式系统开发,如果不能驾驭Makefile,那很难做到游刃有余。
在这里插入图片描述

什么是Makefile/makefile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Makefile假目标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Makefile中的变量

自定义变量

在这里插入图片描述

预定义变量

Makefile中预定义变量包含了常见编译器,汇编器的名称及其编译选项
CC :C编译器的名称,默认值为cc
在这里插入图片描述

自动变量

$^ 规则中的所有选择条件(所有依赖文件)
$< 规则中的第一个先决条件(第一个依赖文件)
$@ 目标文件

在这里插入图片描述

Makefile中变量展开方式

递归展开方式

在这里插入图片描述

简单展开方式

在这里插入图片描述

嵌套的Makefile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CC:=gcc
SUBDIRS:= f1 f2 main obj
OBJS:=f1.o f2.o main.o
BIN:=myapp
OBJS_DIR:=obj
BIN_DIR:=bin
export CC OBJS BIN OBJS_DIR BIN_DIR
all: CHECK_DIR $(SUBDIRS)
CHECK_DIR:
mkdir -p $(BIN_DIR)
$(SUBDIRS):ECHO
make -C $@
ECHO:
@echo $(SUBDIRS)
@echo begin compile
CLEAN:
$(RM) $(OBJS_DIR)/*.o
rm -rf $(BIN_DIR)
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值