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