SOLVED - "fatal error: opencv: no such file or directory" in Sublime Text for c++

SOLVED - "fatal error: opencv: no such file or directory" in Sublime Text for c++

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

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

无论我尝试什么以及如何 fiddle 处理文件,我总是得到同样的错误:

/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 设置正确吗?

实际header的名称是opencv2/opencv.hpp(注意最后的.hpp;一般只有标准库的include没有.hpp,我见过的都是第三方库到目前为止使用 .hpp 扩展名)。

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