๋ฐ์ํ
๐ก ๋ณธ ๋ฌธ์๋ 'VSCode C++ CMake ๊ฐ๋ฐํ๊ฒฝ ์ธํ ๋ฐฉ๋ฒ'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
Linux์์ VSCode C++ CMake ๊ฐ๋ฐํ๊ฒฝ ์ธํ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. VSCode CMake ํ๊ฒฝ ์ธํ (linux)
1.1 CMake Extension
- Visual Studio Code์ ์์ Extension(CMake Tools)์ ์ค์นํ๋ฉด, ์๋์ ๊ฐ์ด VSCode ํ๋จ๋ฐ์ ์ฌ๋ฌ ๋ฒํผ์ด ์์ฑ๋ฉ๋๋ค.
- ์ด๋ฅผ ์ ํ์ฉํ๋ฉด CMake ์์์ ์ฝ๊ฒ ๋๋ฒ๊น ํ๊ณ ์คํ ๋ฐ ํ ์คํธ ํ ์ ์์ต๋๋ค.
1.2 VScode ํ๋จ๋ฐ
- ํ๋จ๋ฐ๋ฅผ ์ด์ฉํ์ฌ Cmake ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
- CMake extension์ ์ค์นํ๋ฉด ์ด 7๊ฐ์ ๋ฒํผ์ด ์์ฑ๋๋ฉฐ ์ฐจ๋ก์ฐจ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1.3 Compiler ์ค์
- compiler๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด GCC 8.4.0 x86_64-linux-gnu๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ช ๋ นํ๋ ํธ์ ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋จ๋ฉด ์ํ๋ ์ปดํ์ผ๋ฌ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
2. CMake Build ์คํ
2.1 Change Build Target
command + shift + p๋ก ๋ช ๋ น ํ๋ ํธ๋ฅผ ์คํ์์ผ "CMake: Set Build Target"์ ๊ฒ์ํ์ฌ ํด๋ฆญํ๊ฑฐ๋, ํ๋จ๋ฐ์ [all]๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์คํํ์ผ ์ค ์ํ๋ ๋น๋ ํ๊ฒ์ผ๋ก ์ค์ ํฉ๋๋ค.
- ์ด๋ ํ๋ก์ ํธ ์ ์ฒด๋ฅผ ๋น๋ํ๊ณ ์ถ๋ค๋ฉด 'all'์ ์ ํํ์ฌ ์ ์ฒด๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค.
2.2 CMake Build
ํ๋จ๋ฐ์ [build]๋ฅผ ํด๋ฆญํฉ๋๋ค.
3. CMake Debug ์คํ
3.1 Change Debug Target
- command + shift + p๋ก ๋ช ๋ น ํ๋ ํธ๋ฅผ ์คํ์์ผ "CMake: Set Debug Target"์ ๊ฒ์ํฉ๋๋ค.
- ์คํํ์ผ ์ค ์ํ๋ ๋๋ฒ๊น ํ๊ฒ์ผ๋ก ์ค์ ํฉ๋๋ค.
๋๋...
- .vscode ๋ด์ launch.json ํ์ผ์ ์์ ํ์ฌ ๋๋ฒ๊น ํฉ์๋ค!
- "program" ๊ฐ์ ์ค์ ํ์ฌ ์คํํ์ผ์ ์ง์ ํ๊ณ ,
"args" ๊ฐ์ ์ง์ ํ์ฌ argument๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค!
{
// IntelliSense๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ํน์ฑ์ ๋ํด ์์๋ณด์ธ์.
// ๊ธฐ์กด ํน์ฑ์ ๋ํ ์ค๋ช
์ ๋ณด๋ ค๋ฉด ๊ฐ๋ฆฌํต๋๋ค.
// ์์ธํ ๋ด์ฉ์ ๋ณด๋ ค๋ฉด https://go.microsoft.com/fwlink/?linkid=830387์(๋ฅผ) ๋ฐฉ๋ฌธํ์ธ์.
"version": "0.2.0",
"configurations": [
{
"type": "cppdbg",
"preLaunchTask": "clang++ build active file",
"request": "launch",
"name": "Debug",
"program": "/home/sjchoi/gmbdsvr/build/bin/MbrReceiver",
"args": [
"--conf", "/home/sjchoi/gmbdsvr/build/MbrReceiverConf.json"
],
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
// "stopAtEntry": true,
"setupCommands": [
{
"description": "gdb์ ์๋ ์์ ์ง์ ์ฌ์ฉ",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"miDebuggerPath": "/bin/gdb"
}
]
}
3.2 CMake Debug
ํ๋จ๋ฐ์ ๋ฒ๋ ๋ชจ์์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๋จ์ํ ์คํ์ ์ํค๊ณ ์ถ๋ค๋ฉด Play ๋ฒํผ์ ํด๋ฆญํฉ์๋ค!
์ฐธ๊ณ
- [CMake] cmake tutorial: https://cmake.org/cmake/help/latest/guide/tutorial/index.html
- [github.io] build cmake: https://booiljung.github.io/technical_articles/c_language/build_cmake_in_vscode_on_linux.html
๋ฐ์ํ
'Study: DeveloperTools(DevTool) > DevTool: CMake' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CMake] Window์์ CMake ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ (0) | 2023.05.23 |
---|---|
[CMake] make package ํจํค์ง (feat. cmake install) (0) | 2022.07.14 |
[CMake] ๋ณ์ ๋ฐ ์ด๋ฏธ ์ ์๋ ๋งคํฌ๋ก ๊ฐ๋ค (0) | 2022.07.07 |
[CMake] configure_file(): CMake ๋ณ์๊ฐ์ ์์ค์ฝ๋์์ ์ฌ์ฉ! (0) | 2022.07.04 |
[CMake] function: ๋ฐ๋ณต๋๋ ์์ ์ ํจ์ํํ์! (0) | 2022.06.28 |