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"
(带有子目录名称)以避免歧义。
无论我尝试什么,#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"
(带有子目录名称)以避免歧义。