0

我尝试通过在我的代码块中使用 Kinect 和 openCV 库来运行 c++ 程序。其他一切似乎都很好,因为我总是收到一个错误说:

/home/maoyi/Documents/practice/practice2.cpp:10:16:致命错误:cv.h:没有此类文件或目录编译终止。

谁能告诉我说没有这样的文件或目录到底是什么意思?因为我很确定那里有一个 practice2.cpp 文件,但我安装了 46% 的 OpenCV 库。我按照以下说明如何安装 OpenCV2.1.0 教程:

http://www.samontab.com/web/2010/04/installing-opencv-2-1-in-ubuntu/

我在“CMAKE”遇到了问题。一步,得到一些这样的提示:

-- 检测到的 GNU GCC 版本:46 (406) -- 检查模块 'gstreamer-base-0.10' -- 未找到包 'gstreamer-base-0.10' -- 检查模块 'gstreamer-app-0.10' --未找到包“gstreamer-app-0.10”-检查模块“gstreamer-video-0.10”-未找到包“gstreamer-video-0.10”-检查模块“libdc1394-2”-包“libdc1394- 2' 未找到 -- 检查模块 'libdc1394' -- 未找到包 'libdc1394' -- 检查模块 'libv4l1' -- 未找到包 'libv4l1' -- 找不到 PythonLibs(缺少:PYTHON_INCLUDE_DIRS) Traceback(大多数最近通话最后):文件“”,第 1 行,在 ImportError 中:没有名为 numpy.distutils 的模块 - 检测到 IPP:-- 解析'cvconfig.h.cmake'

而且我还尝试打开我的突触包管理器来手动安装所有这些缺失的模块,但是我什至找不到其中的一些。(例如gstream-app-0.10)......所以我不知道这是否会导致“没有这样的文件或目录”错误或其他东西。我对 OpenCV 很陌生,所以如果问题非常愚蠢,请不要感到惊讶。但无论如何我继续下一个“制作”步骤,并在下面得到了更多绝望的提示。安装在 46% 处停止,我被提到有很多错误......所以我希望有人可以看看它,也许可以用一些解决方案提示我。非常感谢!

:Point&) const': /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:387:5: 错误: 'ptrdiff_t' 未在此范围内声明/home/maoyihuang/Downloads/OpenCV -2.1.0/include/opencv/cxmat.hpp:387:5:注意:建议的替代方案:/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156: 28:注意:'std::ptrdiff_t'/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28:注意:'std::ptrdiff_t'/home /maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:387:15:错误:预期';' 在'delta1'之前/home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:389:9:错误:'delta1'没有在这个范围内声明/home/maoyihuang/Downloads/OpenCV-2.1 .0/include/opencv/cxmat.hpp:398:31:错误:'delta2'未在此范围内声明/home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:在成员函数'cv::Point cv::MatConstIterator_<_Tp>::pos() const': /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3459:9: 错误: 'ptrdiff_t' 未在此范围内声明/home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3459:9:注意:建议的替代方案:/usr/include/c++/4.6/i686- linux-gnu/./bits/c++config.h:156:28: 注意:'std::ptrdiff_t' /usr/include/c++/4.6/i686-linux-gnu/./bits/c++config .h:156:28:注意:'std::ptrdiff_t'/home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3459:19:错误:预期';' 在'ofs'之前/home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3460:23:错误:'ofs'没有在这个范围内声明/home/maoyihuang/Downloads/OpenCV-2.1 .0/include/opencv/cxmat.hpp:3460:66: 错误:'y'之前的预期')' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3465:9:错误:'ptrdiff_t'未在此范围内声明/home/maoyihuang/Downloads /OpenCV-2.1.0/include/opencv/cxmat.hpp:3465:9:注意:建议的替代方案:/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h: 156:28:注意:'std::ptrdiff_t'/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28:注意:'std::ptrdiff_t' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3465:19:错误:预期';' 在'ofs' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3466:23 之前:错误:在此范围内未声明'ofs' make [2]:建议的替代方案:/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28:注意:'std::ptrdiff_t'/usr/include/c++/4.6/ i686-linux-gnu/./bits/c++config.h:156:28: 注意: 'std::ptrdiff_t' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp: 3465:19: 错误: 预期 ';' 在'ofs' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3466:23 之前:错误:在此范围内未声明'ofs' make [2]:建议的替代方案:/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28:注意:'std::ptrdiff_t'/usr/include/c++/4.6/ i686-linux-gnu/./bits/c++config.h:156:28: 注意: 'std::ptrdiff_t' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp: 3465:19: 错误: 预期 ';' 在'ofs' /home/maoyihuang/Downloads/OpenCV-2.1.0/include/opencv/cxmat.hpp:3466:23 之前:错误:在此范围内未声明'ofs' make [2]:* [src/cxcore/CMakeFiles/cxcore_pch_dephelp.dir/cxcore_pch_dephelp.o] 错误 1 ​​make[1]: * [src/cxcore/CMakeFiles/cxcore_pch_dephelp.dir/all] 错误 2 make: * [all] 错误 2

4

1 回答 1

0

为你做的第一件事是使用 ccmake(包 cmake-curses-gui)。它使 cmake 的使用更容易。其次,只要 cmake 报告错误,您甚至不应该尝试编译。尝试使用带有 gui 的包管理器来安装缺少的库。仅使用库名称进行搜索,因为版本可能会有所不同。大多数库都列在 opencv 网页的部分中,用于从 linux 上的源代码安装。还有简单的方法。使用包管理器从存储库安装 opencv。

于 2013-03-04T10:12:44.383 回答