我正在尝试编译Rob Hess的SIFT算法的C实现。 我成功安装了OpenCV 2.1并使用提供的示例C程序测试了安装。没有错误。
我试图编译的代码是使用OpenCV 2.0编写的。我成功地使用OCV2.0编译并运行了确切的代码。但现在编译失败并打印出来。我正在使用随代码提供的make文件。
make -C ./src siftfeat
make[1]: Entering directory `/home/niroshan/sift/src'
ar rc ../lib/libfeat.a imgfeatures.o utils.o sift.o kdtree.o minpq.o xform.o refine.o
ranlib ../lib/libfeat.a
gcc -I../include `pkg-config --cflags opencv gtk-engines-2` siftfeat.c -o ../bin/siftfeat -L../lib -lfeat `pkg-config --libs opencv gtk-engines-2`
Package gtk-engines-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk-engines-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk-engines-2' found
Package gtk-engines-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk-engines-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk-engines-2' found
In file included from siftfeat.c:18:
sift.h:23: fatal error: cxcore.h: No such file or directory
compilation terminated.
make[1]: *** [siftfeat] Error 1
make[1]: Leaving directory `/home/niroshan/sift/src'
make: *** [siftfeat] Error 2
包括cxcore.h可能还有另外一个问题 有人可以解释我这里有什么不对吗? 提前谢谢
答案 0 :(得分:7)
在我的Ubuntu 10.10盒子上遇到同样的问题。
我发现构建需要什么文件(“gdk / gdk.h”),并看到gtk + -2.0包(/usr/lib/pkgconfig/gtk+-2.0.pc)提供了/ usr的包含路径/include/gtk-2.0,相对于。所需文件存在
我编辑了src / Makefile并将CFLAGS和LIBS pkg-config行从“pkg-config ... opencv gtk-engines-2”更改为“pkg-config ... opencv gtk + -2.0”并为我构建。< / p>
答案 1 :(得分:1)
似乎没有从API中删除cxcore.h。 所以运行
pkg-config --cflags-only-I opencv
并检查包含cxcore.h的目录(很可能是/ usr / include / opencv或/ usr / local / include / opencv)是否已添加到包含路径中。如果不是那么你可以手动添加到makefile配方或编辑opencv.pc文件看起来像这样
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/opencv
Name: OpenCV
Description: Intel(R) Open Source Computer Vision Library
Version: 2.1.0
Libs: -L${libdir} -lml -lcvaux -lhighgui -lcv -lcxcore
Cflags: -I${includedir}
您可能需要编辑前缀以匹配您的安装前缀
答案 2 :(得分:0)
我在Ubuntu Precise工作。我必须安装以下软件包,并将更改改为之前提到的gtk + -2.0。
GTK±2.0 libgtk2.0-dev的 libcv-dev的 libhighgui-dev的 doxygen的
此处可以找到有关使用情况的一些背景信息 - https://web.engr.oregonstate.edu/~hess/publications/siftlib-acmmm10.pdf
bin / match和bin / siftfeat都适用于我,并生成带箭头的图像,显示功能的提取位置