无法编译基本的 opencv cpp 程序

abk*_*kds 1 opencv 14.04

我在本网站上按照https://help.ubuntu.com/community/OpenCV 的规定制作了 ~/.compile_opencv.sh ,然后我制作opencvtest.cpp了包含以下内容的文件。图像路径是有效路径。

#include <opencv2/highgui/highgui.hpp>
using namespace cv;

int main() {
  Mat img = imread("/home/AbKDs/Desktop/friends.jpg",CV_LOAD_IMAGE_COLOR);
  imshow("opencvtest",img);
  waitKey(0);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我创建了别名 opencv="~/.compile_opencv.sh"。但是当我运行它时显示以下错误。

bash: /home/AbKDs/.compile_opencv.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)

相反,我尝试了整个命令,但即便如此,它仍然显示了致命错误。

opencvtest.cpp:1:39: fatal error: opencv2/highgui/highgui.hpp: No such file or directory
 #include <opencv2/highgui/highgui.hpp>
                                       ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

请帮忙 。提前致谢

ger*_*ijk 7

嗯,错误信息很清楚,对吧?

fatal error: opencv2/highgui/highgui.hpp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

您必须安装 opencv-highgui ( libopencv-highgui-dev)的开发包才能安装所需的opencv2/highgui/highgui.hpp头文件。

这里不是为您提供鱼,而是教您如何钓鱼(类似于https://askubuntu.com/a/219539/88802)。

  1. 确定丢失的文件。在这种情况下:highgui.hpp

  2. 搜索提供文件的包,例如通过http://packages.ubuntu.com或使用apt-file.

    在这种情况下:http : //packages.ubuntu.com/search?searchon=contents&keywords=highgui.hpp&mode=exactfilename&suite=trusty&arch=any

  3. 安装提供文件的包。在这种情况下:

    sudo apt-get install libopencv-highgui-dev
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新编译。

  • 通过安装 `opencv`,您安装了 **runtime** 库,而不是用于开发的 **header** 文件。在常规使用 OpenCV(通过应用程序)时,您不需要编译任何东西,因此您不需要访问任何头文件。您正在使用 OpenCV(链接)进行开发,然后您需要它。当作为二进制文件构建和分发时,您不需要目标系统上的头文件。这适用于您可以使用此“配方”的所有通用库。 (2认同)