OpenCV 与 VsCode :opencv2/opencv.hpp:没有这样的文件或目录。但可以运行 CMakeLists.txt

问题描述 投票:0回答:1

我按照这个教程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

它没有给我任何结果,也没有错误:

在此输入图片描述

但是:

  1. 我在“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 。

谢谢您的帮助。

opencv visual-studio-code windows-subsystem-for-linux
1个回答
0
投票

我也遇到了这个问题,兄弟。当我使用 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中这样配置成功,你解决这个问题了吗?

© www.soinside.com 2019 - 2024. All rights reserved.