这是我的工程目录
project/
|-- Driver/
| |-- Inc/
| | |-- drv_delay.h
| | |-- drv_gpio.h
| | `-- drv_lcd.h
| `-- Src/
| |-- drv_delay.c
| |-- drv_gpio.c
| `-- drv_lcd.c
|-- Test/
| |-- Inc/
| | `-- test.h
| `-- Src/
| |-- test.c
| `-- ...
| ` Makefile
以下是我的makefile文件
IDIR = -I ../Driver/Inc \
-I./Inc
SRCDIR = ../Driver/Src/ \
./Src/
OBJDIR = ../obj
OUTDIR = ../bin
CFLAGS= $(IDIR) -W -Wall -D __ARM_LINUX__
DRV_OBJ = drv_delay.o drv_gpio.o drv_lcd.o
DRV_OBJ := $(addprefix ../Driver/Src/, $(DRV_OBJ))
#TEST_OBJ = test.o
#TEST_OBJ := $(addprefix ./Src/, $(TEST_OBJ))
OBJ += $(DRV_OBJ)
#OBJ += $(TEST_OBJ)
OBJ += $(patsubst %.c, $(OBJDIR)/%.o, $(wildcard $(SRCDIR)/*.c))
all : directories $(TARGET)
directories :
@mkdir -p $(OBJDIR)
@mkdir -p $(OUTDIR)
$(info OBJ = $(OBJ))
$(info DRV_OBJ = $(DRV_OBJ))
$(info SRCDIR = $(SRCDIR))
$(info C = $(wildcard $(SRCDIR)/*.c))
$(TARGET): $(OBJ)
@echo Generating $(TARGET) ...
$(CC) -o $(OUTDIR)/$@ $(OBJ)
$(OBJDIR)/%.o: %.c
@echo Compiling $< ...
$(CC) -c -o $@ $< $(CFLAGS)
.PHONY : clean
clean:
@echo RM -rf $(OBJDIR)/
@rm -rf $(OBJDIR)
@echo RM -rf $(OUTDIR)/
@rm -rf $(OUTDIR)
我的打印是
industio@industio:/home/workspace/testC/project/Test$ make
OBJ = ../Driver/Src/drv_delay.o ../Driver/Src/drv_gpio.o ../Driver/Src/drv_lcd.o
DRV_OBJ = ../Driver/Src/drv_delay.o ../Driver/Src/drv_gpio.o ../Driver/Src/drv_lcd.o
SRCDIR = ../Driver/Src/ ./Src/
C = ../Driver/Src/ ./Src//test.c
Generating NeZhaTest ...
arm-linux-gnueabihf-gcc -o ../bin/NeZhaTest ../Driver/Src/drv_delay.o ../Driver/Src/drv_gpio.o ../Driver/Src/drv_lcd.o
/home/industio/ssd20x/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/lib/crt1.o: In function _start': /tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/src/glibc/csu/../sysdeps/arm/start.S:119: undefined reference to
main'
collect2: error: ld returned 1 exit status
Makefile:38: recipe for target 'NeZhaTest' failed
make: *** [NeZhaTest] Error 1
是要加权限嘛