最近我在我的机器上安装了Opencv。它在python中工作得很好(我只是通过一些eg程序检查了一下)。但是由于缺乏python教程,我决定转向c。我只是从http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/
运行一个Hello world程序。在编译时,我得到以下错误
hello-world.c:4:16: fatal error: cv.h: No such file or directory
compilation terminated.
I'm new in opencv
Qn:你能告诉我可能是什么问题-以及我如何在c中运行我的helloworld程序吗?
您的编译器无法找到您的cv.h
包含文件。如果是从包管理器安装的,它可能在/usr/include/opencv/
中。您需要添加包含搜索路径。如果从命令行编译,使用-I
指定附加的包含目录。比如-
gcc -I /usr/include/opencv/ -o helloworld helloworld.c
如果您正在使用Eclipse,
- 右键单击项目并选择属性。
- 选择C/c++通用->路径和符号。
- 选择包含选项卡。
- 在语言列表中,根据你使用的语言选择'GNU C'或'GNU c++ '。
- 按"添加…'按钮并添加/usr/include/opencv/
- 保存并重建。
您需要显示cv.h文件的编译器路径。快速找到它的方法是这样做(在Ubuntu上):
find /usr -name "cv.h"
/usr/local/include/opencv/cv.h
只要把这个添加到编译器中:
gcc -I/usr/local/include/opencv -o helloworld helloworld.c
既然你问这个问题,你的编译器也可能有问题链接你的程序到openv库。只对库文件做同样的事情:
find /usr -iname "libopencv*"
/usr/local/lib/libopencv_flann.so
...
以同样的方式添加这个文件夹,并指定你想使用的库:
gcc helloworld.c -I/usr/local/include/opencv -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -o helloworld
应该编译的。也有一个快捷方式,您可以使用以下命令
来代替所有这些步骤gcc helloworld.c `pkg-config --cflags --libs opencv` -o helloworld
,它应该为您处理查找所需文件的所有工作,并让您专注于有趣的编码部分。
也许你刚刚安装了opencv包。但是,当您想在C程序中使用opencv时,您也可以安装名为opencv-devel的包。如果你还没有,安装它,然后像@ igreen说的那样使用它。