我正在写一个opencv的基本示例,但 make 命令给我留言
g ++ - 4.7.real:错误:pkg-config --cflags opencv:没有这样的文件或目录
g ++ - 4.7.real:错误:pkg-config --libs opencv:没有这样的文件或目录
问题命令 pkg-config --cflag opencv 给我结果如下:
-I / usr / local / include / opencv -I / usr / local / include
和 pkg-config --libs opencv 给我:
-I / usr / local / include / opencv -I / usr / local / include
vudao @ vudaopc:〜/ work / nmath / ntrainer $ pkg-config --libs opencv /usr/local/lib/libopencv_contrib.a /usr/local/lib/libopencv_stitching.a /usr/local/lib/libopencv_nonfree.a /usr/local/lib/libopencv_superres.a /usr/local/lib/libopencv_ocl.a /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_videostab.a /usr/local/lib/libopencv_gpu.a /usr/local/lib/libopencv_photo.a /usr/local/lib/libopencv_objdetect.a /usr/local/lib/libopencv_legacy.a /usr/local/lib/libopencv_video.a /usr/local/lib/libopencv_ml.a /usr/local/lib/libopencv_calib3d.a /usr/local/lib/libopencv_features2d.a /usr/local/lib/libopencv_highgui.a /usr/local/share/OpenCV/3rdparty/lib/libIlmImf.a /usr/local/share/OpenCV/3rdparty/lib/liblibjasper.a / usr / local / share / OpenCV /3rdparty/lib/liblibtiff.a /usr/local/lib/libopencv_imgproc.a /usr/local/lib/libopencv_flann.a /usr/local/lib/libopencv_core.a / usr / lib / i386-linux-gnu / libbz2 .so /usr/lib/i386-linux-gnu/libpng.so /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/i386-linux-gnu/libz.so -lswscale -lavformat -lavutil -lz -lSDL -lasound -lavcodec -lgthrea d-2.0 -lglib-2.0 -lgobject-2.0 -lfontconfig -lfreetype -lpango-1.0 -lcairo -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpangoft2-1.0 -lgio-2.0 -latk-1.0 -lgdk-x11-2.0 -lgtk- x11-2.0 -lrt -lpthread -lm -ldl -lstdc ++
下面是我的Makefile:
CC=g++
CFLAGS=-O2 -g 'pkg-config --cflags opencv'
LDFLAGS='pkg-config --libs opencv'
BIN=ntrainer
ntrainer : ntrainer.cpp
$(CC) $(CFLAGS) $(LDFLAGS) -o $(BIN) ntrainer.cpp
我的系统是Ubuntu 12.10。我已按照http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/
的说明成功安装了opencv-2.4.7(我认为)我也已经将PKG_CONFIG_PATH配置并导出到/etc/bash.bashrc,我还运行了 ldconfig
请有人告诉我我错过了什么?以及如何纠正它。 非常感谢。
答案 0 :(得分:13)
您使用了错误的引号。你应该使用`而不是':
CC=g++
CFLAGS=-O2 -g `pkg-config --cflags opencv`
LDFLAGS=`pkg-config --libs opencv`
答案 1 :(得分:0)
对我来说,文件存在,但路径错误:
我必须查找opencv.pc
文件,确保它位于pkgconfig程序的路径中(即在其中一个pkgconfig文件夹中),然后确保prefix
路径没错。
在我的情况下它是错误的,因为它没有通过make install
安装,但是我创建了一个make package
包,因为它是交叉编译的,我安装它的路径与之不匹配CMAKE路径。
正在运行
pkg-config --cflags opencv
或
pkg-config --libs opencv
告诉您它在哪里寻找文件,因此您可以确保它们匹配。