提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、多文件编程
1.头文件
(1)头文件添加方式
<>-----------在系统路径下添加文件----/usr/include 在根路径下
""-----------在当前路径下添加文件
(2)防止头文件重复编译
#ifndef
#def
#endif
(3)头文件内容
2.功能文件
1.先包含自己的头文件
2.实现自己的函数功能
3.主函数
1.包含调用的.c文件的.h文件
2.包含自己的.文件
3.gcc后的选项
gcc -g 使用gdb
gcc -l 指定链接库的位置
gcc -I 指定头文件的位置
gcc -E hello.c -o hello.i 预处理
gcc -S hello.c -o hello.s 编译
gcc -c helli,c -o hello.o 汇编
二、工程管理工具makefile
1.makefile语法规则
1.make
在命令行下执行make命令,对应的三个文件
MAKEFILE Makefile makefile
2.mikefile编译规则
目标:所有的依赖文件
生成规则
三个变量是提升定义好的
$@ 目标文件名
$< 第一个依赖的文件名
$^:所有依赖的文件名以空格隔开
= 给变量赋值
?= 如果变量没值中间以空格隔开
:= 赋新值
+= 在之前的变量中加入后续内容
2.示例makefile
文件结构为
.
├── include
│ ├── add.h
│ ├── div.h
│ ├── mul.h
│ └── sub.h
└── src
├── add.c
├── add.o
├── all
├── div.c
├── div.o
├── main.c
├── main.o
├── Makefile
├── mul.c
├── mul.o
├── sub.c
└── sub.o
2 directories, 16 files
makefile工程文件
OBJ=all
SRC=main.o add.o sub.o mul.o div.o
CC=gcc
LFLAG=-lm -g
INCLUDE=../include
$(OBJ):$(SRC)
$(CC) $^ -o $@ $(LFLAG) -I$(INCLUDE)
%.o:%.c
$(CC) -c $< -o $@ -I$(INCLUDE)
clean:
rm $(OBJ)
distclean:
rm $(OBJ) *.o
install:
sudo cp $(OBJ) /bin
unstall:
sudo rm /bin/$(OBJ)
))