【vscode】使用vscode多源文件結合opencv編譯調試 C/C++

使用vscode多源文件結合opencv庫進行開發

vscode插件只需要安裝



1、新建文件夾OPENCVTEST

2、添加文件main.cpp

內容如下:

#include "Lib/OpencvTest.h"
#include <iostream>

int main()
{
    OpencvTest* opencvtest = new OpencvTest();
    opencvtest->readImage();
    delete opencvtest;
    return 0;
}

3、新建文件夾Lib

4、添加文件OpencvTest.cpp與OpencvTest.h

內容如下:

OpencvTest.h

#pragma once

class OpencvTest
{
public:
    void readImage();
    OpencvTest();
    ~OpencvTest();
};
OpencvTest.cpp

#include "OpencvTest.h"
#include <iostream>
#include <opencv2/opencv.hpp>

void OpencvTest::readImage()
{
    cv::Mat img = cv::imread("lena.jpg");
    cv::imshow("ImageShow", img);
    cv::waitKey(0);
}

OpencvTest::OpencvTest()
{
    std::cout << "OpencvTest Object Constructed" << std::cout;
}

OpencvTest::~OpencvTest()
{
    std::cout << "OpencvTest Object Destructed" << std::cout;
}

5、F5運行,選擇C++(GDB/LLDB),生成launch.json文件,用以下內容替換該文件內容

注意修改miDebuggerPath的值,同樣的如果用qt提供的mingw,我這裏修改爲D:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gdb.exe同樣可以調試運行

//launch.json    
{    
    "version": "0.2.0",    
    "configurations": [    
          
        {    
            "name": "C++ Launch",    
            "type": "cppdbg",    
            "request": "launch",    
            "program": "${file}.o",    
            "args": [],    
            "cwd": "${workspaceRoot}",    
            "environment": [],    
            "externalConsole": true,    
            "preLaunchTask": "g++",    
            "linux": {    
                "miDebuggerPath": "/usr/bin/gdb",    
                "MIMode": "gdb",    
                "setupCommands": [    
                    {    
                        "description": "Enable pretty-printing for gdb",    
                        "text": "-enable-pretty-printing",    
                        "ignoreFailures": true    
                    }    
                ]    
            },    
            "osx": {    
                "MIMode": "lldb"    
            },    
            "windows": {    
                "miDebuggerPath": "D:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gdb.exe",    
                "MIMode": "gdb",    
                "setupCommands": [    
                    {    
                        "description": "Enable pretty-printing for gdb",    
                        "text": "-enable-pretty-printing",    
                        "ignoreFailures": true    
                    }    
                ]    
            }    
        }    
    ]    
}   


6、F5運行,配置任務,使用模版創建tasks.json文件,隨便選擇一個,生成tasks.json文件,用以下內容替換該文件內容

//tasks.json    
{    
    "version": "0.1.0",    
    "command": "g++",    
    "args": [    
        "-g",    
        "${file}",    
        "-o",    
        "${file}.o"    
    ],    
    "problemMatcher": {    
        "owner": "cpp",    
        "fileLocation": [    
            "relative",    
            "${workspaceRoot}"    
        ],    
        "pattern": {    
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",    
            "file": 1,    
            "line": 2,    
            "column": 3,    
            "severity": 4,    
            "message": 5    
        }    
    }    
}  

7、編寫CMakeList.txt

每一個包含源文件的目錄中都要編寫CMakeLists.txt

根目錄中的CMakeLists.txt,一般程序入口在此。內容如下:

# 使用CMake Tools插件(可選,如果這個項目去到一個沒有這個插件的機器也同樣可以生成項目)
include(CMakeToolsHelpers OPTIONAL)

# CMake 最低版本號要求
cmake_minimum_required(VERSION 2.8)

# 項目名稱
project(OpencvTest)

# 查找當前目錄下的所有源文件
# 並將名稱保存到 DIR_ROOT_SRCS變量
aux_source_directory(. DIR_ROOT_SRCS)

# 添加 Lib子目錄
add_subdirectory(Lib)

# 指定生成目標
add_executable(OpencvTest main.cpp ${DIR_ROOT_SRCS})

# 添加鏈接庫
target_link_libraries(OpencvTest OpencvLib)

子目錄中的Lib/CMakeLists.txt,一般將子目錄中的源文件編譯爲靜態鏈接庫。內容如下:

opencv鏈接庫是使用cmake用mingw編譯出來的,可參考 http://blog.csdn.net/qq_15947787/article/details/77600099

opencv頭文件以及鏈接庫路徑可根據實際情況進行修改

include(CMakeToolsHelpers OPTIONAL)

cmake_minimum_required(VERSION 2.8)

#添加opencv頭文件的搜索路徑  
INCLUDE_DIRECTORIES(D:/opencv2.4.9/build/include/opencv)
INCLUDE_DIRECTORIES(D:/opencv2.4.9/build/include/opencv2)
INCLUDE_DIRECTORIES(D:/opencv2.4.9/build/include)

# 查找路徑下的所有源文件
aux_source_directory(. DIR_LIB_SRCS)

# 生成鏈接庫
add_library(OpencvLib ${DIR_LIB_SRCS})

# 添加鏈接庫  
TARGET_LINK_LIBRARIES(OpencvLib D:/opencv2.4.9/build/x86/mingw/lib/libopencv_core249.dll.a)  
TARGET_LINK_LIBRARIES(OpencvLib D:/opencv2.4.9/build/x86/mingw/lib/libopencv_highgui249.dll.a)  
TARGET_LINK_LIBRARIES(OpencvLib D:/opencv2.4.9/build/x86/mingw/lib/libopencv_imgproc249.dll.a)  

8、在vscode終端下輸入(找不到終端?F5調試就彈出來了)

cmake -G "MinGW Makefiles"


mingw32-make


9、運行程序

在vscode終端下輸入(也就是剛纔CMakeLists.txt中的project項目名稱,前提要在opencvtest中放入lena.jpg這張圖)

.\OpencvTest.exe

最終的工程截圖:



工程下載:http://download.csdn.net/download/qq_15947787/10151111

參考:http://www.jianshu.com/p/a0ae073e973b

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章