2014-01-20 287 views
0

我正在嘗試生成與我的Raspberry Pi配合使用的makefile,目的是使用Pi的相機板來檢測opencv中的臉部。但是我一直面對自己,出現以下錯誤:{Makefile Error}「命令在第一個目標之前開始,停止。」

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) 

LDFLAGS_CAMCVLDFLAGS_USER所需的raspicamcv庫和INCLUDE是相關的頭文件。需要LDFLAGS_FACE來檢測opencv2.3中的人臉,因爲2.4當前不支持Pi。

我敢肯定,這個錯誤是令人難以置信的微不足道的,但關於makefile的明確文檔很少,如果任何人都可以提供解決方案,我會很感激。

+1

是不是12的行號?哪一行是第12行? (對於這個問題,你在這裏發佈的最後一行有命令,這些命令位於任何目標之前,你希望使用哪個目標命令?) – tabstop

+0

您應該使用目標模式。 – user3159253

+4

GNU make手冊文檔非常清晰,當然也包含基礎知識:http://www.gnu.org/software/make/manual/html_node/index.html – MadScientist

回答

0

水木清華這樣的:

 
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) 

<標籤>是一個文本按鍵,唐娜如何插入它在回答域。

說明:
$(CC) -o emobot_test...是應在目標調用時執行的命令。

all是當您只需運行make而不帶參數時執行的默認目標。

all取決於emobot_test目標 emobot_test不依賴於任何目標,但始終運行$(CC) -o emobot_test...完成

相關問題