如何在VSCODE中使用OpenCV c ++

时间:2018-07-27 19:57:43

标签: c++ opencv visual-studio-code

根据此视频https://www.youtube.com/watch?v=l4372qtZ4dc 我正在尝试在vscode中使用OpenCV,但无法包含.lib文件,该怎么办

enter image description here

main.cpp

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{

  if( argc != 2)
  {
    cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
    return -1;
  }

  Mat image;
  image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

  if(! image.data )                              // Check for invalid input
  {
      cout <<  "Could not open or find the image" << std::endl ;
      return -1;
  }

  namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display.
  imshow( "Display window", image );                   // Show our image inside it.

  waitKey(0);                                          // Wait for a keystroke in the window
  return 0;
}

我收到此错误

  

PS C:\ Users \ giorg \ Documents \ Development \ Tests \ node-addons-test \ src \ examples> g ++ * .cpp   main.cpp:1:33:致命错误:opencv2 / core / core.hpp:没有这样的文件或目录    #包括                                    ^   编译终止。

我设法包含dll,但是找不到如何扩展名为.lib的文件。

这是我的c_cpp_properties.json文件

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/src/lib",
                "C:\\openCV\\opencv\\build\\include",
                "C:\\openCV\\opencv\\build\\x64\\vc15\\lib"  <=== this is the problem , how to include this
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17134.0",
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx64/x64/cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

3 个答案:

答案 0 :(得分:1)

为什么不通过添加CMakeLists.txt使用cmake,它也跨平台且易于使用。 我也使用VS Code。而且我建议使用cmake。

答案 1 :(得分:0)

要包含.lib文件,您应该访问项目的属性=> linker => entries =>其他依赖项,然后添加.lib文件properties of project

答案 2 :(得分:0)

当您使用 CMake 时,您使用的编辑器/IDE 并不重要。 在 CMake 中有很多方法可以添加外部库:

  1. 使用FindPackage
  2. 使用子模块
  3. 使用手动将 .h/.hpp 和 lib(dll/so/a/lib) 文件添加到您的项目中
  4. 甚至更多

向项目添加外部库的最简单方法之一是子模块。只需搜索子模块并学习它,然后您就可以轻松使用项目中的任何库。

这是一个 .cmake 文件,您可以使用它更轻松地进行子模块化 https://www.scivision.dev/cmake-git-submodule/

以及这里的教程:

https://web.archive.org/web/20210703145609/https://github.blog/2016-02-01-working-with-submodules/