일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 등차수열
- 오늘도 우라라 펫
- 오늘도 우라라
- Linux
- topic
- 마리아 DB
- mariaDB
- 우분투
- 오늘도 우라라 공략
- 그랑사가
- 반복문
- 오늘도 우라라 펫 공략
- ros
- C언어
- 환경설정
- 토픽
- MSG
- ubuntu
- mysql
- publish
- JungOl
- 리눅스
- LeetCode
- C++
- install opencv-4.4.0 on ubuntu 22.04
- Subscribe
- 데이터 베이스
- 프로그래밍
- while
- 기초
- Today
- Total
하루의 쉼터
[IDE] 개발 환경 서포트 By VSco 본문
저자 개발 환경
* Host OS : Ubuntu 20.04
* Ros2 Version : Foxy
* Connet OS : Windows11
* IDE Tools : VSCode 1.84.2
* 접속 방법 : SSH
- 코드 수정 및 개발이 필요 시 상위 워크스페이스 보다는 최하위 패키지를 열어서 설정해두는 것을 권장함.
- 해당 글에서는 rclcpp/topics/minimal_publisher 패키지 기준으로 작성되었음.
- 해당 글은 오로카 및 공식레퍼런스를 참조하였음.
- 본 글에 의도는 SSH 접속으로도 충분히 디버깅이 가능한 모습을 보여주며 기초 환경설정을 알려주기 위함.
1. c_cpp_properties.json
C/C++ 관련 설정으로 해당 패키지(현재 작업 공간)에게 사용할 compiler, include 경로 등을 알려주게 됨.
즉, 코드 탐색, 자동 완성 등과 연관 있음.
* Ctrl + Shift + P를 눌러 C/C++: Edit Configurations(JSON)을 통해 최초 생성하거나 해당 파일을 확인 할 수 있음.
intelliSenseMode : 코드 자동 완성을 위한 설정
name : 작업 공간의 운영 체제를 작성하면 됨 —> Host OS(Linux, Windows, Mac…)
compilerPath : 사용할 컴파일러의 경로 —> 우분투 20.04 기준 /usr/bin/g++ , 윈도우 : mingw 다운 하여 경로 설정
includePath : 사용할 include들 경로를 첨부, 다른 패키지 include, ros include등
—> ${workspaceFolder}/** 작성 시 하위 패키지 검색
—> ${workspaceFolder} 작성 시 하위 패키지는 찾지 않음.
cppStandard : IntelliSense에 사용할 C++ 언어 표준 버전
저자 예시
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/opt/ros/foxy/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
2. task.json
작업 환경 내에 빌드 명령을 위한 것으로 colcon 관련 된 작업을 Task로 만들어 사용
터미널(CLI) 연동 기능
- Ctrl + Shift + P를 눌러 tasks: Configure Task - CMake: configure를 통하여 최초 작성 및 수정 가능
- Ctrl + Shift + P - Tasks: Run Task - 만든 Task를 통하여 작업 가능
- Ctrl + Shift + b 로 빌드 가능
{
"version": "2.0.0",
"tasks": [
{
"label": "colcon: build",
"type": "shell",
"command": "colcon build --cmake-args '-DCMAKE_BUILD_TYPE=Debug'",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "colcon: install",
"type": "shell",
"command": "colcon build --symlink-install"
}
]
}
3. launch.json
- launch.json은 디버깅 및 실행 파일을 위해 사용되는 task들을 모아 놓은 json파일로 launch가 실행되기 전 task지정 및 콘솔 기능을 설정할 수 있음.
- 본 글에서는 아래와 같이 설정하였음.
- rclcpp를 사용했기때문에 colcon build 를 수행하고 진행함.
- 패키지 이름 및 노드 이름은 CMakeLists를 참고 하면 입력 하기 수월함.
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug-rclcpp(gbd)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/install/${input:package}/lib/${input:package}/${input:node}",
"args": [],
"preLaunchTask": "colcon: build",
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
],
"inputs": [
{
"id": "package",
"type": "promptString",
"description": "package name",
"default": "minimal_subscriber"
},
{
"id": "node",
"type": "promptString",
"description": "node name",
"default": "minimal_subscriber"
}
]
}
vscode - ros이용 시 아래와 같이 설정 가능
{
"version": "0.2.0",
"configurations": [
{
"name": "ROS: Launch my file",
"request": "launch",
"target": "<full path to your launch.py or launch file>",
"launch": ["rviz", "gz", "gzserver", "gzclient"],
"type": "ros"
}
]
}
* 완료 후 브레이크 포인트를 만들고 Ctrl + D를 통하여 Run and debug를 해준다면 아래와 같이 잘되는 것을 확인 할 수 있음.
Reference :
https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference
https://code.visualstudio.com/docs/cpp/config-msvc
https://cafe.naver.com/openrt?iframe_url_utf8=/ArticleRead.nhn%3Fclubid=25572101%26articleid=25288
https://github.com/ms-iot/vscode-ros
https://code.visualstudio.com/docs/cpp/launch-json-reference