我正在尝试生成一个供我的Raspberry Pi使用的makefile,其目的是使用Pi的摄像头板通过opencv检测面部。但是,我始终面对以下错误:
Makefile:12: *** commands commence before first target. Stop.
我使用以下makefile:
FLAGS = 'pkg-config --cflags opencv --libs opencv'
CC = g++
HOME = /home/pi
LDFLAGS_CAMCV = -L$(HOME)/git/robidouille/raspicam_cv -lraspicamcv
LDFLAGS_USER =-L$(HOME)/git/raspberrypi/userland/build/lib -lmmal_core -lmmal -$
LDFLAGS_FACE = -l$(HOME)/git/emobot/libfacere0.04
LDFLAGS = $(LDFLAGS_CAMCV) $(LDFLAGS_USER) $(LDFLAGS_FACE)
INCLUDE = -I$(HOME)/git/robidouille/raspicam_cv
$(CC) -o emobot_test.exe: main.cpp $(INCLUDE) $(LDFLAGS)
raspicamcv库要求LDFLAGS_CAMCV
和LDFLAGS_USER
,并且INCLUDE
是关联的头文件。 Pi当前不支持2.4,因此需要LDFLAGS_FACE
来检测opencv2.3中的人脸。
我敢肯定这个错误是微不足道的,但是如果有人可以提供解决方案,那么关于makefile的清晰文档就很少了,我将不胜感激。
类似:
FLAGS ='pkg-config --cflags opencv --libs opencv'CC = g ++主页= / home / piLDFLAGS_CAMCV = -L $(HOME)/ git / robidouille / raspicam_cv -lraspicamcvLDFLAGS_USER = -L $(HOME)/ git / raspberrypi / userland / build / lib -lmmal_core -lmmal-$LDFLAGS_FACE = -l $(HOME)/git/emobot/libfacere0.04LDFLAGS = $(LDFLAGS_CAMCV)$(LDFLAGS_USER)$(LDFLAGS_FACE)包含= -I $(HOME)/ git / robidouille / raspicam_cv全部:emobot_testemobot_test:tab $(CC)-o emobot_test.exe main.cpp $(包含)$(LDFLAGS)
说明:$(CC) -o emobot_test...
是应在目标调用后执行的命令。
[all
是默认目标,仅在不带参数的情况下运行make
即可执行。
[all
取决于emobot_test
目标emobot_test
不依赖任何目标,但始终运行$(CC) -o emobot_test...
以完成操作
我有同样的问题...
我已经有了检查,测试和构建的规则...但是想要将它们串在一起...
我觉得很容易...
.DEFAULT_GOAL := fullcheck
$(MAKE) check
$(MAKE) test
$(MAKE) build
但是没有命令在第一个目标之前开始。停止。
我省略的是规则的名称。应该是这样
.DEFAULT_GOAL := fullcheck
fullcheck:
$(MAKE) check
$(MAKE) test
$(MAKE) build