可能的重复项:
OpenCV on ubuntu 11.10
我很难尝试在Ubuntu上安装OpenCV。我相信我已经安装了OpenCV;但是,我正在尝试使用 Eclipse 编译一个示例程序 kalman.cpp,但我无法编译它。我相信我的问题是与图书馆的链接。
我看过很多教程,我不明白为什么在我的电脑中安装 opencv 后,使用命令 pkg-confi opencv --libs
后得到以下输出:
manuel@manuel:~$ sudo pkg-config opencv --libs
/usr/local/lib/libopencv_calib3d.so
/usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_features2d.so
/usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so
/usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so
/usr/local/lib/libopencv_objdetect.so
/usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_ts.so
/usr/local/lib/libopencv_video.so
/usr/local/lib/libopencv_videostab.so
每个教程的库都显示为:
-L/where/you/have/installed/opencv/lib -lcxcore -lcv -lhighgui -lcvaux
这真的很烦人,因为 Eclipse 找不到 libopencv_contrib .so 的库。它正在等待类似的东西 - lopencv_contrib
我真的很感谢你的帮助。请让我知道我做错了什么。
我从来没有在Eclipse中使用过OpenCV。我基本上使用 gcc 或 g++(取决于 c 或 C++)文件编译它。
对于 C 文件,
$ gcc -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.c .c` opencvtest.c `pkg-config --libs opencv`
对于C++文件,
$ g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`
有关详细信息,请参阅 http://jayrambhia.wordpress.com/2012/05/08/beginning-opencv/
如果你对此感到满意,我认为你不需要使用 Eclipse。
希望这有帮助。
要链接到库,您需要使用 -L /path/to/libraries
标志指定其所在目录的路径。
您还需要要使用 -l my_library
的特定库。
通常,您还需要使用-I /path/to/headers
指定必要的包含路径
pkg-config
可以用作执行此操作的帮助程序,因为它返回使用库所需的确切参数。
你应该像这样使用它:
echo `pkg-config opencv --cflags --libs`
或
g++ my_first_opencv_app.cc `pkg-config opencv --cflags --libs`
在我的系统上计算为
g++ my_first_opencv_app.cc -I/usr/include/opencv -lml -lcvaux -lhighgui -lcv -lcxcore
要使其与 eclipse 一起使用,您可能需要通过项目设置中的某个 GUI 元素指定包含路径 ( /usr/local/include/opencv
?)、库路径 ( /usr/local/lib
?) 和您需要的库。那你可能不需要pkgconfig
。