Makefile 求指导
两个 目录 A8 和 StopWait 各含 若干个 c cpp h
env.mk
- #CC:=gcc
- CC:=arm-arago-linux-gnueabi-gcc
- CFLAGS := -Wall -g -lpthread
- INCLUDE_DIR := -I$(MAKEROOT)/A8 -I$(MAKEROOT)/StopWait
- %.o : %.c
- $(CC) $(CFLAGS) -c $^ -o $(MAKEROOT)/obj/$@ $(INCLUDE_DIR)
- %.o : %.cpp
- $(CC) $(CFLAGS) -c $^ -o $(MAKEROOT)/obj/$@ $(INCLUDE_DIR)
makefile
- export MAKEROOT := $(shell pwd)
- TARGET_DIRS := A8 StopWait
- include ./env.mk
- define build_obj
- for SubDir in $(TARGET_DIRS); do make -C $SubDir all || exit1; done
- endef
- .PHONY:all
- all:
- $(call build_obj)
- ${CC} -Wl --hash-style=sysv -g -lpthread -o main.out ./obj/*.o
- .PHONY:clean
- clean:
-
- -rm -rf *.out ./obj/*.o
错误
- for SubDir in A8 StopWait; do make -C $SubDir all || exit1; done
- make[1]: 正在进入目录 `/root/桌面/A8FNode1/A8'
- make[1]: *** 没有规则可以创建目标“all”。 停止。
- make[1]:正在离开目录 `/root/桌面/A8FNode1/A8'
- /bin/sh: exit1: not found
- make[1]: 正在进入目录 `/root/桌面/A8FNode1/StopWait'
- make[1]: *** 没有规则可以创建目标“all”。 停止。
- make[1]:正在离开目录 `/root/桌面/A8FNode1/StopWait'
- /bin/sh: exit1: not found
- make: *** [all] 错误 127
|