0

Resently 我在我的机器上安装了 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的新手

Qn:您能否报告可能是什么问题 - 以及我如何在 c 中运行我的 helloworld 程序?

4

3 回答 3

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/
  • 保存并重建。
于 2012-12-27T05:52:44.750 回答
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

这应该会为您处理查找所需文件的所有工作,并让您专注于有趣的编码部分。

于 2012-12-27T12:44:44.090 回答
0

也许你刚刚安装了 opencv 包。但是,当你想在你的 C 程序中使用 opencv 时,你也可以安装命名为 opencv-devel 的包。如果还没有,请安装它,然后像@iagreen 所说的那样使用它。向您致以最良好的祝愿。

于 2012-12-27T05:57:51.760 回答