2014-11-06 106 views
0

我在RaspberryPi中安装了opencv并配置了Makefile,但无法找到头文件。 如何正确配置Makefile。如何配置Makefile以使用OpenCV

我有2 .cpp文件和1 .h文件。

BlobLabeling.cpp BlobLabeling.h hand_tracking.cpp 

时使其返回像下面:

[email protected] ~/test $ make 
g++ BlobLabeling.cpp 
In file included from BlobLabeling.cpp:2:0: 
BlobLabeling.h:9:31: fatal error: highgui/highgui.hpp: No such file or directory 
compilation terminated. 
Makefile:11: recipe for target 'BlobLabeling.o' failed 
make: *** [BlobLabeling.o] Error 1 

在BlobLabeling.cpp

在hand_tracking.cpp

#include <stdio.h> 
#include "cv.h" 
#include "highgui.h" 
#include "BlobLabeling.h" 

在BlobLabeling.h

#include "highgui/highgui.hpp" 
#include "opencv.hpp" 

Makefile 

CXX = g++ 

LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_video -lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/usr/lib 

CPPFLAGS = -g -I/usr/include/opencv -I/usr/include/opencv2 

all: BlobLabeling.o hand_tracking.o 
     g++ -o test BlobLabeling.o hand_tracking.o 

BlobLabeling.o: BlobLabeling.cpp 
     g++ BlobLabeling.cpp 

hand_tracking.o: hand_tracking.cpp BlobLabeling.h 
     g++ hand_tracking.cpp 

在/ usr /包括/ opencv2

[email protected] ~/test $ ls /usr/include/opencv2 
calib3d features2d imgproc objdetect stitching videostab 
contrib flann  legacy opencv.hpp ts 
core  highgui  ml  photo  video 
+0

可以尝试使用适当的 “opencv2/highgui/highgui.hpp” 和“opencv2 /core/core.hpp“而不是过时的”cv.h“和”highgui.h“? – berak 2014-11-06 11:24:48

+1

@berak谢谢你!我在BlobLabeling.h中更改了“opencv2/highui/highgui.hpp”,“opencv2”/opencv.hpp,它起作用! – kkd927 2014-11-06 11:30:56

+0

@berak请添加它作为答案。 – karlphillip 2014-11-07 01:00:42

回答

1

请使用适当的C++头:

#include "opencv2/core/core.hpp" 
#include "opencv2/highgui/highgui.hpp" 

ALON g当包含路径:

-I/usr/include/opencv2 

,而不是过时的 “cv.h” 和 “highgui.h”