我按照这个教程(https://www.geeksforgeeks.org/how-to-install-opencv-in-c-on-linux/)在wsl中安装OpenCV(版本= 4.x) -1. 当我尝试测试是否已正确安装 OpenCV 时,当我单击 VsCode 中的“运行”按钮时,它引发了以下错误:“opencv2/opencv.hpp:没有这样的文件或目录”。
这是我的.cpp 文件:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
std::cout << "hello" << std::endl;
return 0;
}
然后我尝试了另一种方法(如何修复manjaro中安装的opencv4的“致命错误:opencv2/core.hpp:没有这样的文件或目录”)来编译.cpp文件:
g++ DisplayImage.cpp -o DisplayImage -I/usr/local/include/opencv4
它没有给我任何结果,也没有错误:
但是:
我在“c_cpp_properties.json”中配置了包含路径
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}",
"/usr/local/include/opencv4"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
更重要的是,我可以通过单击“转到定义”来打开这个头文件。所以,我确信头文件“opencv2/opencv.hpp”存在并且包含路径是正确的。
2 按照教程,我可以在此 .cpp 文件上运行 CMake,不会出现任何错误。并且我可以实现.cpp文件的功能。 这是我的 CMake 文件:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
有人知道原因吗?以及如何解决这个问题?看来,我无法“运行”这个 .cpp 文件,但可以对其进行 CMake 。
谢谢您的帮助。
我也遇到了这个问题,兄弟。当我使用 vsode 在 wsl2 上运行我的代码时,我可以调试 c/c++ 文件并运行 Cmake 来打印正确的信息。但是,当我单击运行 c/c++ 文件时,它失败并说
/usr/bin/g++ -fdiagnostics-color=always -g /home/yang258/coding/cpp_project/Cpp_Test_Project/src/main.cpp -o /home/yang258/coding/cpp_project/Cpp_Test_Project/src/main /home/yang258/coding/cpp_project/Cpp_Test_Project/src/main.cpp:3:10: 致命错误:template_fun.h:没有这样的文件或目录 3 | #include“template_fun.h” | ^~~~~~~~~~~~~~~~ 编译终止。
我很困惑,因为在windows11中这样配置成功,你解决这个问题了吗?