WSL 을 세팅하는 이유
- 윈도우즈에서 mingw 를 이용해 C 언어 코딩을 하려고 했는데 리눅스 버전과 라이브러리 차이가 조금 심해서 어쩔 수 없이 WSL 을 세팅해야 했다
WSL Ubuntu Linux 에서 C 언어 사용법
- WSL 설치
- WSL 을 WSL2 로 업그레이드
- 공식 문서 보고 쉽게 가능
sudo apt-get install build-essential gdb
설치- 안되면 sudo apt-get update 이용
C/C++ Extensions
설치- 설치 이후 WSL 전용도 익스텐션도 설치
.vscode
아래 설정 파일들
c_cpp_properties.json
파일
{
"configurations": [
{
"name": "Linux",
"includePath": ["${workspaceFolder}/**"],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
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": []
}
settings.json
파일
{
"files.associations": {
"stdio.h": "c",
"stdlib.h": "c"
},
"C_Cpp.errorSquiggles": "disabled"
}
tasks.json
파일
{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation": {
"reveal": "always"
},
"tasks": [
//C++ 컴파일
{
"label": "save and compile for C++",
"command": "g++",
"args": ["${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"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
}
}
},
//C 컴파일
{
"label": "save and compile for C",
"command": "gcc",
"args": ["${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
"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": "${fileDirname}/${fileBasenameNoExtension}",
"group": "test"
}
]
}
레퍼런스
반응형
'리눅스와 유닉스' 카테고리의 다른 글
Bash, 그리고 Shell 이란 무엇일까? (0) | 2024.02.03 |
---|---|
apt-get remove 명령어와 apt-get purge 명령어의 차이 (0) | 2023.06.22 |
WSL 에서 apt-get install 을 이용한 패키지 설치가 동작하지 않을 때 (0) | 2023.06.07 |
WSL 루트 (ROOT) 계정 패스워드 분실 (까먹었을 때) (0) | 2023.06.05 |
Glob 이란 무엇일까? (0) | 2022.06.12 |