无论我尝试什么,我都没有成功使用#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"
(使用子目录名称(以避免歧义。