vim 이외의 개발환경을 제공해야 하는 상황이다.
vscode 를 설치하고 빌드/실행하는 방법을 확인한다.
아래 링크에서 apt 방식으로 설치
ctrl + shift + p 로 command palette 를 open 한 후 다음 검색어를 선택
Tasks: Configure Task
Open 'launch.json'
C/C++: Edit Configurations (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 : 바이너리 실행
추가로 설치한 extension