목표는 Visual Studio Code에서 Ubuntu 컨테이너를 연결해 C 코드를 컴파일하고 실행하는 것이다.
Ubuntu 컨테이너 및 개발 도구 세팅
docker pull ubuntu:20.04 # 도커 이미지 다운
docker run -it --name myUbuntu ubuntu:20.04 # 도커 컨테이너 실행
# 도커 업데이트 및 개발 도구 설치
apt-get update
apt-get upgrade -y
apt-get install build-essential gdb
- build-essential
- Ubuntu에서 C/C++ 개발에 필요한 기본적인 컴파일 도구들을 한꺼번에 설치해주는 메타 패키지
- <stdio.h>, <stdlib.h> 같은 기본 C 헤더 파일과 컴파일러가 함께 설치돼서 개발 가능
- gdb
- C/C++ 프로그램을 디버깅할 수 있는 도구
Visual Studio Code와 연결
Extentions에서 Remote Development 설치 → Dev Containers 필요
설치가 완료되었다면 왼쪽 사이드바에서 해당 아이콘을 선택
들어가고자 하는 컨테이너 선택
C 코드 실행
코드 작성
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
pid_t pid;
pid = fork();
printf("Hello!\n");
return 0;
}
컴파일 및 실행
🔥 트러블슈팅
문제 상황
컴파일과 실행은 잘 되지만 Visual Studio Code에서 에러 표시가 뜸.
원인 분석
실행이나 컴파일 에러가 아닌, VS Code IntelliSense 기능(코드 자동완성, 오류 표시 등)을 위한 설정 문제
→ 에디터가 stdio.h를 못찾아서 빨간 줄을 그어놓은 상태
해결책
팔레트 열기 : cmd + shift + p
.vscode/c_cpp_properties.json 열기
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": []
}
],
"version": 4
}
파일 수정
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include",
"/usr/local/include"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
✅ 해결 완료