一个比较复杂的makefile工程例子

工程目录

.
├── inc
│   └── utils.h
├── makefile
├── obj
└── src
    ├── main.c
    └── utils.c

文件内容

utils.h

#ifndef UTILS_H
#define UTILS_H

int add(int a, int b);

#endif // UTILS_H

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

# Makefile for a simple C project

# Compiler and flags
CC = gcc
CFLAGS = -Wall -I inc

# Directories
SRC_DIR = src
OBJ_DIR = obj
INC_DIR = inc

# Source files
SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
# Object files
OBJ_FILES = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_FILES))

# Executable name
EXEC = app

# Default target
all: $(EXEC)

# Link the object files to create the executable
$(EXEC): $(OBJ_FILES)
	$(CC) -o $@ $^

# Compile source files into object files
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	$(CC) $(CFLAGS) -c $< -o $@

# Clean up
clean:
	rm -f $(OBJ_DIR)/*.o $(EXEC)

# Phony targets
.PHONY: all clean

make执行后

.
├── app
├── inc
│   └── utils.h
├── makefile
├── obj
│   ├── main.o
│   └── utils.o
└── src
    ├── main.c
    └── utils.c
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值