1、目录结构
2、文件
2.1、 test.h
extern void test(void);
2.2 、test.c
#include <stdio.h>
void test(void)
{
printf("Hello world!\n");
}
2.3 、main.c
#include "test.h"
int main(void)
{
test();
return 0;
}
2.4、makefile
TEST_DIR := $(shell pwd)/..
TEST_INC := $(TEST_DIR)/include
TEST_SRC := $(TEST_DIR)/src
TEST_LIB := $(TEST_DIR)/lib
CC := gcc
LIB_DIR := -L$(TEST_LIB)
INC_DIR := -I$(TEST_DIR) \
-I$(TEST_INC) \
-I$(TEST_LIB)/include
SRC_C := $(wildcard $(TEST_DIR)/*.c)
SRC_C += $(wildcard $(TEST_SRC)/*.c)
OBJS := $(patsubst %.c, %.o, $(SRC_C))
CFLAGS := -g -Wall -Werror
TEST_APP := test
%.o:%.c
@$(CC) $(CFLAGS) $(INC_DIR) -c $< -o $@
default:$(OBJS)
@$(CC) -g $(OBJS) $(LIB_DIR) -o $(TEST_APP)
@echo "build test done..."
clean:
@rm -rf $(OBJS) $(TEST_APP)
@echo "clean done..."
3、测试