我正在尝试生成一个用于我的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
是关联的头文件。检测opencv2.3中的面部需要LDFLAGS_FACE
,因为Pi目前不支持2.4。
我确定这个错误是非常微不足道的,但是关于makefile的明确文档很少,如果有人能提供解决方案,我将不胜感激。
答案 0 :(得分:2)
Smth喜欢:
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 all: emobot_test emobot_test: tab$(CC) -o emobot_test.exe main.cpp $(INCLUDE) $(LDFLAGS)
<击>&LT;标签&gt;是一个文字按键,不知道如何将其插入答案字段。
说明:
$(CC) -o emobot_test...
是一个应该在目标调用时执行的命令。
all
是您在没有参数的情况下运行make
时执行的默认目标。
all
取决于emobot_test
目标
emobot_test
不依赖于任何目标,但总是运行$(CC) -o emobot_test...
以完成
答案 1 :(得分:0)
我遇到了同样的问题...
我已经有了检查,测试和构建的规则...但是想要将它们串在一起...
我以为...
.DEFAULT_GOAL := fullcheck
$(MAKE) check
$(MAKE) test
$(MAKE) build
但是没有命令在第一个目标之前开始。停止。
我省略的是规则的名称。应该是这样
.DEFAULT_GOAL := fullcheck
fullcheck:
$(MAKE) check
$(MAKE) test
$(MAKE) build