[Ubuntu 18.04] Visual Studio Code(VSCode)에서 OpenCV 연동하기

VSCode에서 OpenCV를 사용해보자!

이번 포스팅에서는
Github에서 소스코드를 받은 다음 Visual Studio Code를 이용해 빌드를 해볼 것이다.

Ubuntu 18.04를 사용하면서 Visual Studio Code를 접해볼 수 있었다.

처음에 Visual Studio Code를 다루다 보면 빌드 환경을 직접 설정해주어야 하기 때문에
까다롭다고 느낄 수 있다.

여러 블로그를 참고하면서 이번에 Visual Studio Code에서 OpenCV 연동하는 법을 정리하고자 한다.

1. VS Code Install & OpenCV Install

먼저 Visual Studio Code 및 OpenCV를 설치해 주어야 한다.
설치가 안되었다면 Visual Studio Code 설치하는 방법( Windows / Ubuntu )를 참고하여
설치를 하길 바란다.

나같은 경우 포스팅에 나온 단축기 설정까지 동일하게 설정해 주었다.

그리고 OpenCV도 설치를 해주어야 하는데 Ubuntu에서 OpenCV 깔기가 정말 힘들다…
다음과 같은 블로그를 참고하여 OpenCV를 설치하였다.
Anaconda나 ROS같이 경로를 바꾸어주는 친구들이 있다면 더욱 더 골치 아프다. 😭

만약 OpenCV 설치가 끝난 후 터미널 창에
pkg-config --modversion opencv
를 입력하고 다음과 같은 결과가 나오면 설치해 성공한 것이다.

나는 OpenCV 3.4.0 Version을 설치했다.

2. 소스 코드 다운 받기

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝에 나오는 소스 코드를 이제 다운 받아보자!

터미널을 열고
git clone https://github.com/gilbutITbook/006939.git
를 입력하고 엔터를 누르면 파일이 다운 받아진다.

3. VSCode에서 파일 열고 난 후 Setting

우리가 VSCode에서 건들여야 할 부분은 크게 3가지이다.

  • CMakeLists.txt
  • task.json
  • 컴파일러 경로

그럼 차근차근 설정해보자!

먼저 확인해야 할 점은

  1. Cmake가 설치되어 있는가? 없다면 VScode 터미널 창에 $ sudo apt-get install cmake
  2. CMakeLists.txt를 만들 때 경로는 main.cpp가 있는 곳과 같아야 한다.
  3. 하나의 폴더 내부에 vscode라는 폴더, build 폴더, 그리고 메인 cpp 파일이 있는지 확인하자.

확인이 끝났다면 VSCode를 열고 좌측 상단에 있는 파일(F)를 클릭한다. 그 후 폴더 열기 버튼을 누른 후 내가 빌드하고 싶은 소스코드 파일을 Open한다.

그럼 이제 컴파일러를 설정하라는 문구가 나온다.
여기서 GCC 7.5.0을 클릭한다. (어차피 바꿀꺼라 아무거나 해도 상관없다.)

그 다음 Ctrl + Shift + P를 눌러서 보이는 입력 창에 c/c++을 입력한 후,
C/C++: 구성 편집(UI)를 선택한다.

다음과 같이 컴파일러 경로를 설정한다.

그럼 왼쪽에 있는 탐색기 부분이 아래와 같은 모습으로 바뀐 것을 확인할 수 있다.

이렇게 컴파일러 경로를 설정한 후, 그 다음으로 건들여야할 녀석은 빌드 작업 구성이다.

먼저 상단에 있는 터미널(T)를 클릭한다. 그리고 기본 빌드 작업 구성을 누른다.

맨 밑에 Others를 클릭한다.

그리고 task.json파일을 아래의 코드를 복사해서 바꾸어준다.

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation" : { "reveal": "always" },
    "tasks": [
          //C++ 컴파일
          {
            "label": "compile for C++",
            "command": "cd ${fileDirname} && cmake . && make",
            "group": "build",

            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher

            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                   //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        // 바이너리 실행(Ubuntu)

        {

            "label": "execute",

            "command": "cd ${fileDirname} && ./${workspaceFolderBasename} ",

            "group": "test"

        }

    ]
}

이 소스 코드는 Visual Studio Code에서 CMake 사용하여 OpenCV 코드 컴파일 하기를 참고하였다.

여기까지 완료하면 왼쪽에 있는 탐색기 부분이 아래와 같이 바뀌었을 것이다.

그럼 이제 CMakeLists.txt파일을 클릭한 후 수정해보자!

먼저 나와 동일한 방법으로 소스코드를 다운 받아 수정을 하는 것이라면
get_filename_component(ProjectId ${CMAKE_CURRENT_LIST_DIR} NAME) 만 추가해주면 된다.

하지만 그렇지 않다면 다음의 소스 코드를 복사하자.

get_filename_component(ProjectId ${CMAKE_CURRENT_LIST_DIR} NAME)  

string(REPLACE " " "_" ProjectId ${ProjectId})

project(${ProjectId} C CXX)

set (CMAKE_CXX_STANDARD 11)
cmake_minimum_required(VERSION 2.8)
find_package( OpenCV REQUIRED )
 
file(GLOB SOURCES  *.cpp)
 
add_executable(${PROJECT_NAME} ${SOURCES}  )
target_link_libraries( ${PROJECT_NAME} ${OpenCV_LIBS} )

4. 컴파일 및 빌드

이제..
모든 준비는 끝났다.

main.cpp 코드를 클릭하고 컴파일 및 실행을 시켜보자!

단축기를 잘 설정했다면, Ctrl + Alt + C를 눌러 컴파일을 진행할 수 있다.

설정이 잘 되었다면 컴파일이 무리 없이 진행될 것이다!

왼쪽에 있는 탐색기도 아래와 같이 바뀌었다!

그럼 이제 Ctrl + Alt + R을 눌러 실행을 해보자.

어떤 파일이냐에 따라 다르겠지만 문제 없이 실행이 된다면 성공이다. 😆

야호~

댓글남기기