使用C++和openCV设置cmake:致命错误:opencv2/opencv.hpp:没有这样的文件或目录#include < opencv 2/opencv.hpp>

3pvhb19x  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(282)

我对C++和cmake非常陌生(这意味着:我昨天开始),我坚持尝试包括OpenCV。这可能是一个完整的新手错误,我在安装过程中的某个地方,以及,所以我真的希望你的想法和经验。这是我尝试运行的代码:

#include <opencv2/opencv.hpp>
#include <iostream>

int main(){
    std::cout << CV_VERSION << std::endl;
    return 0;
}

这是我收到的错误消息:

main.cpp:1:30: fatal error: opencv2/opencv.hpp: No such file or directory
 #include <opencv2/opencv.hpp>

我看了一下this post here,并将我的CMake文件更新为:

cmake_minimum_required(VERSION 3.0.0)
project(myproject VERSION 0.1.0 LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)

include(CTest)
enable_testing()

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
message("OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")

add_executable(myproject main.cpp)

target_link_libraries(myproject ${OpenCV_LIBS} )

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

更新:同时,我添加了几个json文件,就像建议的here一样。但是我不确定我是否根据我的情况正确地调整了它们。
这就是我的c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "C:/opencv/sources/include",
                "C:/opencv/build/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

但这也没有解决问题。有什么想法是错的吗?正如我所说,我对此完全是新手,所以这可能是一件非常容易/愚蠢的事情。^^°
这些是我的PC上存储Cmake和openCV的位置,以防相关:

C:\opencv
C:\Program Files\CMake
6jjcrrmo

6jjcrrmo1#

好吧,同时我找到了一种方法让它工作。我最初是按照this tutorial来设置一切的。但是在使用“播放按钮”运行脚本时,我遇到了标题和描述中提到的错误,即使文件在指定的位置并且所有路径都正确包含。我仍然不能这样做,但有另一种方法,也许有更多像我这样的初学者没有意识到这一点,这就是为什么我想分享它。
在Windows中,按SHIFT+CRTL+P并在弹出的窗口中键入“CMake”,您将找到CMake: Build命令。单击它,它将为您生成一个可执行文件,在我的例子中,该文件位于build/Debug/中。如果您从控制台运行此可执行文件,它将正常工作(前提是您的代码不包含任何错误)。
这是一种变通方法,因为至少根据提到的教程,应该有一种更简单的方法来运行代码,但至少我现在可以继续工作。
这仍然是有趣的,知道为什么它没有找到文件时,我直接在VSCode运行脚本,所以如果有人有一个想法,请分享它,它将帮助我和其他人正在努力与相同的(初学者?)问题。

相关问题