工程目录
.
├── inc
│ └── utils.h
├── makefile
├── obj
└── src├── main.c└── utils.c
文件内容
utils.h
#ifndef UTILS_H
#define UTILS_Hint add(int a, int b);#endif
main.c
#include <stdio.h>
#include "utils.h"int main() {printf("Hello, World!\n");printf("Sum of 3 and 5 is: %d\n", add(3, 5));return 0;
}
utils.c
#include "utils.h"int add(int a, int b) {return a + b;
}
makefile
CC = gcc
CFLAGS = -Wall -I inc
SRC_DIR = src
OBJ_DIR = obj
INC_DIR = inc
SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_FILES))
EXEC = app
all: $(EXEC)
$(EXEC): $(OBJ_FILES)$(CC) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c$(CC) $(CFLAGS) -c $< -o $@
clean:rm -f $(OBJ_DIR)/*.o $(EXEC)
.PHONY: all clean
make执行后
.
├── app
├── inc
│ └── utils.h
├── makefile
├── obj
│ ├── main.o
│ └── utils.o
└── src├── main.c└── utils.c