已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"



无论我尝试什么,我都没有成功使用#include <opencv>。[编辑:我也尝试过#include <opencv2>#include <opencv4>,但没有区别]。

作为上下文,我在 Ubuntu 20.04 上使用 Sublime Text 3,最新版本的 OpenCV 安装在系统上(在/usr/local/include/opencv4/opencv2(,我已经为 cpp 尝试了六种不同的构建系统,包括默认的。

无论我尝试什么以及如何摆弄文件,我总是得到相同的错误:

/home/user/Projects/Mind/CScript/Script.cpp:5:10: fatal error: opencv: No such file or directory
5 | #include <opencv>
|          ^~~~~~~~
compilation terminated.
[Finished in 0.1s with exit code 1]
[shell_cmd: g++ "/home/user/Projects/Mind/CScript/Script.cpp" -o "/home/user/Projects/Mind/CScript/Script" && "/home/user/Projects/Mind/CScript/Script"]
[dir: /home/user/Projects/Mind/CScript]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]

我什至尝试将整个opencv文件夹复制到文件路径中,但根本没有任何更改。

编辑:有效的解决方案是将opencv2文件夹从/usr/local/include/opencv4/粘贴到/usr/local/include/。显然,那个额外的文件夹不应该在那里。

#include是指文件,而不是文件夹。在包含路径列表中查找如此指定的文件。

-I /usr/local/include/opencv4/opencv2将该路径添加到包含路径列表中。然而,这条路径对我来说似乎被破坏了——OpenCV 在opencv/中具有遗留的 API,在opencv2/中更新了 API,但无论哪种情况,路径中都不应该有opencv4/。(与我的 APT 仔细检查。您确定您正确执行了OpenCV设置吗?

实际标头的名称是 opencv2/opencv.hpp(注意末尾的.hpp;通常,只有标准库的包含没有.hpp,到目前为止我看到的所有第三方库都使用.hpp扩展(。

最佳做法是保留包含路径,并在源中写入#include "opencv2/opencv.hpp"(使用子目录名称(以避免歧义。

最新更新