vscode 환경구성

Cute_Security15·2024년 10월 14일
0

linux dev

목록 보기
9/9

상황

vim 이외의 개발환경을 제공해야 하는 상황이다.
vscode 를 설치하고 빌드/실행하는 방법을 확인한다.

vscode 설치

아래 링크에서 apt 방식으로 설치

vscode 실행 후 폴더 open

  • vscode 에서 "File -- Open Folder" 클릭, 작업하던 소스코드 디렉토리 선택

.vscode 내 json 3개 파일을 수정

ctrl + shift + p 로 command palette 를 open 한 후 다음 검색어를 선택

Tasks: Configure Task

  • tasks.json 수정

Open 'launch.json'

  • launch.json 수정

C/C++: Edit Configurations (JSON)

  • c_cpp_properties.json 수정

수정할때 몇가지 주의사항이 있다.
1) tasks.json 과 launch.json 에서 쓰는 바이너리는 동일위치에 존재해야 한다

2) workspace 에서 아무 파일도 열려잇지 않을땐 fileDirname 를 쓸수 없고,
열려있는 파일기준으로 잡히기 때문에, 빌드명령을 작성할때 불편하다.
--> workspaceFolder 를 사용한다.

3) 빌드명령은 space 대신 콤마로 구분한다고 생각하고, 구분된 명령들은 큰따옴표로 감싼다.

4) pkg-config 를 쓸때는 큰따옴표 안에서 backquote 를 사용한다.

수정된 내용

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "pablo_uvc_uart_server build",
            "command": "/usr/bin/g++",
            "args": [
                "${workspaceFolder}/pablo_uvc_uart_server.cpp",    // Makefile 작성한다고 생각하고, 띄어쓰기마다 콤마로 구분해서 작성 
                "${workspaceFolder}/pablo_uvc_uart_command.cpp",
                "${workspaceFolder}/pablo_uvc_opencv_control.cpp",
                "-o",
                "${workspaceFolder}/uart_server",    // 소스코드 디렉토리에 바로 바이너리를 만들것
                "-lpthread",
                "`pkg-config",
                "opencv4",
                "--libs",
                "--cflags",
                "opencv4`"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger aaaa."    // 빌드에 사용할 task 선택할때, 보이는 메시지
        }
    ],
    "version": "2.0.0"
}

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}/uart_server",    // tasks.json 에서 기술한 바이너리 위치와 동일하게 수정
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/opencv4"    // opencv header 추가
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-arm64",
            "compilerArgs": [
                "`pkg-config --cflags opencv4`"    // opencv flags 추가
            ]
        }
    ],
    "version": 4
}

수행 확인

ctrl + shift + b : 바이너리 빌드
ctrl + f5 : 바이너리 실행


참고한 링크

profile
관심분야 : Filesystem, Data structure, user/kernel IPC

1개의 댓글

comment-user-thumbnail
2024년 10월 16일

추가로 설치한 extension

  • C/C++
  • C/C++ Extension Pack
  • C/c++ Compile Run
답글 달기