OpenCV - C库在我的Ubuntu11.10中不起作用

时间:2012-12-27 03:38:37

标签: c image-processing opencv error-handling header

现在我在我的机器上安装了Opencv。它在python中运行良好(我只是通过一些例如程序检查它)。但由于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.

我是opencv的新手

问:你能否报告可能存在的问题 - 以及我如何在c中运行helloworld程序?

3 个答案:

答案 0 :(得分:1)

您的编译器找不到您的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 /
  • 保存并重建。

答案 1 :(得分:1)

您需要显示cv.h文件的编译器路径。找到它的快捷方法是(在Ubuntu上):

find /usr -name "cv.h"
/usr/local/include/opencv/cv.h

只需将其添加到编译器:

gcc -I/usr/local/include/opencv -o helloworld helloworld.c

由于您提出此问题,您的编译器可能也会在将程序链接到opencv库时遇到问题。只对库文件做同样的事情:

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

应该负责为您找到所需文件的所有工作,让您专注于有趣的编码部分。

答案 2 :(得分:0)

也许您刚刚安装了opencv软件包。 但是,由于您希望在C程序中使用opencv,您还可以安装名为opencv-devel的软件包。如果你还没有,安装它,而不是像@iagreen说的那样使用它。 祝你好运。