筱团Blog筱团のBlog

makefile

筱团·2021-09-20 00:00·62 次阅读

makefile

Linux 配置#

c 编译器:gcc(属于GUN项目)
文本编辑器:gedit(TAB设置为4个空格)

Linux 操作回顾#

Copy
# 创建文件 c gedit test.c # 编译文件 c gcc test.c -o test # 直接运行文件 c ./test

makefile 使用例子#

Copy
test: test.c gcc test.c -o test

注意细节:

  1. target(test)冒号右边有个空格
  2. 第二行第一个符号是 TAB 键
  3. 最后一行存在,且是空的

运行 makefile 文件直接在 cmd 中输入 make 即可

多个文件 h 和 c 一起编译#

Copy
main: main.c tool.o gcc main.c tool.o -o main tool.o: tool.c gcc -c tool.c clean: remove *.o main

多个文件 h 和多个文件 c 一起编译#

.c 和 .h 分别代表实现和声明,如下:

Copy
// .c #include<bar.h> int find_min(int arr[] ,int n) { int m = arr[0]; int i; for (i=0; i<n; ++i) { if(arr[i] < n) m = arr[i]; } } // .h int find_min(int arr[] ,int n);

makefile

Copy
CC = gcc CFLAGS = -lm -Wall -g all: main_max main_min main_max: main_max.c tool.o $(CC) $(CFLAGS) main_max.c tool.o -o main_max main_min: main_min.c tool.o $(CC) $(CFLAGS) main_min.c tool.o -o main_min bar.o: bar.h $(CC) $(CFLAGS) -c bar.c tool.o: tool.c $(CC) $(CFLAGS) -c tool.c clean: remove *.o main_max main_min

执行

Copy
make clean make ls
posted @   筱团  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
目录