makefile
hello
src/main.c src/main.h
src/fun2.c src/fun2.h
obj/*.o
main.c
#include <stdio.h>
#include "main.h"
#include "fun2.h"
int main(void){
printf("Hello !\r\n");
fun2();
return 0;
}
main.h
int main(void);
fun2.c
#include <stdio.h>
#include "fun2.h"
int fun2(void){
printf("Hello 2!\r\n");
return 0;
}
fun2.h
int fun2(void);
makefile
CC:=g++
INCLUDE:=.
CFLAGS= -g -Wall -ansi
SRC_BASE_DIR:=./src/
OBJ_BASE_DIR:=./obj/
OBJ:= $(OBJ_BASE_DIR)main.o \
$(OBJ_BASE_DIR)fun2.o
TARGET:=hello
hello: $(OBJ)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJ) -B $(OBJ_BASE_DIR)
$(OBJ_BASE_DIR)%.o: $(SRC_BASE_DIR)%.c
mkdir -p $(OBJ_BASE_DIR)
$(CC) $(CFLAGS) -c $^ -o $@
.PHONY: clean
clean:
rm -f *.o hello
rm -f $(OBJ_BASE_DIR)*.o
rmdir $(OBJ_BASE_DIR)
沒有留言:
張貼留言