linux - 让 OpenCV 头文件在 Linux 中安装时正常工作
问题描述
我在 Ubuntu Linux 上安装了 OpenCV。在任何示例中,标题都是:
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
当我使用这些包含编译时,我得到了错误:
fatal error: opencv2/imgcodecs.hpp: No such file or directory
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
我可以找到 OpenCV 所在的位置
pkg-config --cflags --libs opencv
输出如下:
"Package opencv was not found"
当我尝试pkg-config --cflags --libs opencv2
我得到:
"Package opencv2 was not found"
只有当我使用时pkg-config --cflags --libs opencv4
,我才能获得路径:
-I/usr/local/include/opencv4/opencv2
所以我认为通过将包含更改为:
#include <opencv4/imgcodecs.hpp>
#include <opencv4/highgui.hpp>
它会起作用的。但我得到:
fatal error: opencv4/imgcodecs.hpp: No such file or directory
#include <opencv4/imgcodecs.hpp>
所以当我尝试完整路径时:
#include <opencv4/opencv2/imgcodecs.hpp>
我得到:
imgcodecs.hpp:46:10: fatal error: opencv2/core.hpp: No such file or directory
#include "opencv2/core.hpp"
当然在有hpp
问题的文件中是:
#include "opencv2/core.hpp"
有没有一种简单的方法来解决这一切?
解决方案
我最近确实遇到了这个问题。问题是,当您构建 OpenCV 时,它会将头文件放在 /usr/local/include/opencv4/ 中,然后在其下方您将看到 opencv2/opencv.hpp 以及您引用的所有其他文件。要解决您的问题,您需要在 bash 中运行:
sudo ln -s /usr/local/include/opencv4/opencv2 /usr/local/include/opencv2
这为我解决了这个问题,如果它对您有用,请务必将其标记为答案。
推荐阅读
- javascript - 如何使用 api 调用更新值?
- python - ARIMA模型python中错误日期的预测
- r - 拟合随机森林模型并返回指定数据结果的函数
- kubernetes - 部署到 Kubernetes
- flutter - Flutter - 如何从另一个小部件内部更改状态
- node.js - node-superagent responseType('blob') vs. buffer(true)
- orocommerce - 如何更改电子邮件模板中使用的价格格式?
- javascript - JS 为轮班工作制作自动调度程序:意外的“未定义”对象键
- powershell - powershell 命令的输出只显示一列
- c - 带指针的 C sprintf 实现