跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • vscode 怎么 include opencv2?
未分類
15 7 月 2020

vscode 怎么 include opencv2?

vscode 怎么 include opencv2?

資深大佬 : xiaoming1992 12

初学 cpp
我把 opencv 下载到了一个单独的目录下

cpp-libs |--opencv |--|--sources |--|--build |--|--|--bin |--|--|--x64 |--|--|--include |--|--|--|--opencv2 |--|--|--|--|--core |--|--|--|--|--|--core.hpp 等文件 /目录 

c_cpp_properties.json文件如下:

{     "configurations": [         {             "name": "Win32",             "includePath": [                 "${workspaceFolder}/**",                 "${default}",                 "C:/cpp-libs/opencv/build/include"             ],             "defines": [                 "_DEBUG",                 "UNICODE",                 "_UNICODE"             ],             "compilerPath": "C:\MinGW\bin\g++.exe",             "cStandard": "c11",             "cppStandard": "gnu++14",             "intelliSenseMode": "clang-x86"         }     ],     "version": 4 } 

我在.cpp文件中引入opencv2如下:

#include <opencv2/core/core.hpp> 

为什么 include 这个路径(C:/cpp-libs/opencv/build/include)还不够, F5 调试时依然提示 fatal error: opencv2/core/core.hpp: No such file or directory, includePath 到底应该是什么?

ps: 没用 visual studio, 太大了

大佬有話說 (7)

  • 資深大佬 : nannanziyu

    @xiaoming1992
    c_cpp_properties.json 里的 inlucdePath 只用于 Code Intelligence
    你要在 tasks.json 里用 -I 参数来对 build 命令行增加 Include Path
    比如

    “command”: “g++”,
    “args”: [
    “${file}”,
    “-g”,
    “-std=c++17”,
    “-Wall”,
    “-o”,
    “${fileDirname}\${fileBasenameNoExtension}.exe”,
    “-I”,
    “C:/cpp-libs/opencv/build/include”,
    ]

  • 主 資深大佬 : xiaoming1992

    @nannanziyu 谢谢,确实是这样,在`tasks.json`中添加参数后就可以编译了。
    可是编译后又报`’recursive_mutex’ in namespace ‘std’ does not name a type`错误,`stackoverflow`上有类似的问题[https://stackoverflow.com/questions/14191566/c-mutex-in-namespace-std-does-not-name-a-type]( https://stackoverflow.com/questions/14191566/c-mutex-in-namespace-std-does-not-name-a-type),当然 google 上有很多相关问题,但是大多都说是编译器的问题
    昨天试了一下,把 google 到的回答中推荐的编译器几乎都试了一下,还是不行,实在是搞不来了,又把 vs2019 下回来了,实在是不想下这个,太大了,公司电脑又太捞,但是没办法,应该是我太捞了,搞不来,算了算了,不折腾了。再次感谢

  • 資深大佬 : nannanziyu

    1. recursive_mutex 属于 posix thread,所以你的 gcc 要下载 posix thread 的
    比如用 MinGW-64
    https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/
    下载这个页面中的 x86_64-posix-seh
    2. opencv 也要下载对应的 build
    https://github.com/huihut/OpenCV-MinGW-Build,不然可以编译,但无法 link
    3. vs2019 很小,最小安装只要 800M 。大是因为你把 msvc 和 sdk 都装上了

  • 資深大佬 : nannanziyu

    vscode 怎么 include opencv2?

    task.json
    {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    “version”: “2.0.0”,
    “tasks”: [
    {
    “label”: “build”,
    “type”: “shell”,
    “command”: “g++”,
    “args”: [
    “${file}”,
    “-g”,
    “-std=c++17”,
    “-Wall”,
    “-o”,
    “${fileDirname}\${fileBasenameNoExtension}.exe”,
    “-I”,
    “F:/Download/OpenCV-MinGW-Build-OpenCV-4.1.1-x64/include”,
    “-LF:/Download/OpenCV-MinGW-Build-OpenCV-4.1.1-x64/x64/mingw/lib”,
    “-llibopencv_core411”,
    “-llibopencv_imgcodecs411”,
    “-llibopencv_highgui411”
    ]
    }
    ]
    }

    launch.json
    {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    “version”: “0.2.0”,
    “configurations”: [
    {
    “name”: “(gdb) Launch”,
    “type”: “cppdbg”,
    “request”: “launch”,
    “program”: “${workspaceFolder}/${fileBasenameNoExtension}.exe”,
    “args”: [],
    “stopAtEntry”: false,
    “cwd”: “${workspaceFolder}”,
    “environment”: [],
    “externalConsole”: false,
    “MIMode”: “gdb”,
    “miDebuggerPath”: “gdb”,
    “setupCommands”: [
    {
    “description”: “Enable pretty-printing for gdb”,
    “text”: “-enable-pretty-printing”,
    “ignoreFailures”: true
    }
    ],
    “preLaunchTask”: “build”
    }
    ]
    }

  • 主 資深大佬 : xiaoming1992

    感谢感谢,那应该是我的 opencv 版本不对,因为是很久之前下的,写了一点图片处理相关的东西,当时用的 vs2019 跑的好好的,因为处理效果不好(程序太捞)就搁置了,然后又卸载了 vs,现在捡起来用 vscode 结果跑不起来了。。。

    你说的那个 mingw-64 那个版本我应该(?)是下载过的,但是当时估计是 opencv 版本不对,仍然跑不起来,待会再试一试,再次感谢,现在愿意像你这么详细地给新人讲解这种基础问题的不多了

  • 資深大佬 : nannanziyu

    @xiaoming1992
    1. 不是的,opencv 版本不对,只会导致 link 失败,编译是会通过的
    2. 你用的是 win32 thread 的 MinGW-64,所以会提示不存在 std::recursive_mutex

    vscode 怎么 include opencv2?

  • 資深大佬 : nannanziyu

    @xiaoming1992
    vscode 怎么 include opencv2?
    绿框的是 posix thread 的 MinGW,编译 opencv 成功
    红框的是用 win32 thread 的 MinGW,报错 std::recursive_mutex 不存在

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具