makefile指定头文件路径_11_gcc、makefile极简学习(多文件、多路径) | C语言入门...

11_gcc、makefile极简学习(多文件、多路径)

711c103b483a2203ec2c941fca1ac8e5.png

KeyPoint

  1. 预处理gcc -E file.c -o file.i处理#号开头的预处理指令,展开宏

  2. 编译gcc -S file.i -o file.s从源文件到汇编文件(高级编程语言->底层编程语言)

  3. 汇编gcc -c file.s -o file.o从汇编文件到二进制程序(人勉强可以读的底层汇编语言->计算机读的二进制程序)

  4. 链接gcc file.o -o test,使用链接器将该目标文件与其他目标文件、库文件、启动文件等链接起来生成可执行文件, 可以用./test执行生成的结果

  5. 手动编写完整的gcc, 注意格式要像python一样整齐\dog

# -I ./submodule在这个文件夹找找不到的头文件
test:main.o module.o
gcc main.o module.o -o test -I ./submodule
main.o:main.c
gcc -c main.c -o main.o -I ./submodule# ./submodule/module.c module.c文件在当前目录下的submodule文件夹里
module.o:./submodule/module.c
gcc -c ./submodule/module.c -o module.o# 执行make clean清除编译的结果
clean:rm -f *.o test
  1. 带有一点点技巧的gcc

# 增加搜索的%.o的文件夹路径,用:隔开各个文件夹
VPATH = func:log# 生成的目标文件名为test
TAR = test# 增加搜索的头文件路径,每个都要-I开头,./代表当前路径下
INC =-I./log -I./func# 所有要生成的二进制文件
OBJ = main.o func.o log.o$(TAR):$(OBJ)
gcc *.o -o $@ $(INC)
%.o:%.c
gcc -c $< -o $@ $(INC)# 执行make clean清除make的结果
clean:rm -f *.o $(TAR)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值