Visual Studio Code에서 WSL을 사용하는 방법을 살펴보겠습니다.
1. Visual Studio Code Extention에 들어갑니다.
2. 검색창에 WSL을 검색합니다.
3. Microsoft에서 제작한 WSL을 설치합니다.
아래 터미널 창이 있는 경우 그대로 두고 없는 경우 아래를 따르면 됩니다.
1. 상단 메뉴의 ... 선택
2. 터미널 선택
3. 새 터미널 선택
터미널 창이 열리면 아래를 따르면 WSL을 사용할 수 있습니다.
1. 터미널 창 상단의 아래로 화살표 클릭
2. Ubuntu(WSL) 선택
3. WSL 터미널을 선택하거나 자동 선택됩니다.
4. WSL 터미널을 자유롭게 사용할 수 있습니다.
얼마 전에 본 Youtube 영상에서 Visual Studio Code는 확장 가능성이 높은 텍스트 에디터라는 말을 보았습니다. 그리고 이 도구를 이용해 실습하던 중 Linux를 사용해 컴파일할 수 있다는 것을 알게되었습니다. 때문에 C언어에서 필수적으로 갖추어야 할 것을 설치해서 환경을 구축하겠습니다.
C언어 Extention을 설치해주겠습니다.
1. Visual Studio Code Extention에 들어갑니다.
2. 검색창에 C를 검색합니다.
3. Microsoft에서 제작한 C/C++을 설치합니다.
C언어를 이용하기 위해서는 컴파일러가 필요합니다. 저는 GCC 컴파일러를 사용하겠습니다.
[참고] Visual Studio Code에서 WSL 창 숨기기/펼치기
Shell 창을 숨기고 여는 단축키는 [ctrl] + [j] 입니다. 만약 코드만 크게 보고 싶다면 참고하면 좋습니다.
apt-get을 업데이트 및 업그레이드 해줍니다.
$ sudo apt-get update
$ sudo apt-get upgrade
gcc를 설치합니다.
$ sudo apt-get install gcc
설치가 완료되면 설치를 확인하기 위해 GCC 컴파일러의 버전을 살펴보겠습니다.
$ gcc --version
설치가 완료된 것을 확인할 수 있습니다.
어디에 설치되어 있는지 확인해보겠습니다.
$ which gcc
gcc 컴파일러가 설치되었습니다. gcc를 사용하기 전에 이에 대해 추가로 알고싶다면 아래 링크를 참고하세요.
2023.03.13 - [SystemSecurity/System Security Concepts] - [008] GCC 컴파일러란 무엇일까? GCC 컴파일러와 파일 확장자
C언어 컴파일 과정을 살펴보겠습니다.
C언어 에서는 [소스 파일]을 전처리하고, [전처리된 소스 파일]을 컴파일합니다. 그러면 [개체 파일]이 생성되는데 링커가 startup code를 붙여 실행파일로 만듭니다.
다음은 GCC에서 C언어 컴파일 과정을 살펴보겠습니다.
가장 처음에는 .c 확장자를 가진 소스 파일이 있습니다.
- test.c라고 가정하겠습니다.
첫째로 전처리 과정이 일어납니다.
- GCC에서는 test.i 파일이 생성됩니다.
둘째로 컴파일 과정이 일어납니다.
- GCC에서는 test.s 파일이 생성됩니다.
셋째로 어셈블 과정이 일어납니다.
- GCC에서는 test.o 파일이 생성됩니다.
넷째로 링킹 과정이 일어납니다.
- GCC에서는 실행파일이 생성됩니다.
GCC 컴파일러를 사용해보겠습니다.
코드는 다음과 같습니다.
#include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
첫번째로 단계를 나누어 컴파일하겠습니다.
첫째로 전처리 과정이 일어납니다.
$ gcc -E test.c -o test.i
- GCC에서는 test.i 파일이 생성됩니다.
둘째로 컴파일 과정이 일어납니다.
$ gcc -S test.i
- GCC에서는 test.s 파일이 생성됩니다.
셋째로 어셈블 과정이 일어납니다.
$ gcc -c test.s
- GCC에서는 test.o 파일이 생성됩니다.
넷째로 링킹 과정이 일어납니다.
$ gcc test.o -o test
- GCC에서는 실행파일이 생성됩니다.
전체 파일을 보고, 실행해보겠습니다.
성공적으로 실행된 것을 알 수 있습니다.
그런데 말이죠. 위의 과정은 너무 깁니다. 코드 하나 실행하기 이렇게 벅차서 되겠습니까? 그래서 소스 파일을 전처리, 컴파일, 어셈블을 한 번에 할 수 있는 명령어가 있습니다. 이는 다음과 같습니다.
$ gcc -c test.c
한번에 목적 파일이 생성되었습니다. 이제 이를 링킹해 실행파일로 만들어주겠습니다.
$ gcc test.o -o test
잘 실행이 되는 것을 알수 있습니다. 보통 Visual Studio Community를 쓸 때도 컴파일 후에 에러가 없는지 확인하고 실행하기도 하는데 이 기능이라고 생각하면 편할것 같습니다.
이번에는 위에서 소개한 과정을 무시하고 해보겠습니다. 명령어는 다음과 같습니다.
$ gcc test.c
생성된 a.out 파일을 실행해보니 프로그램이 실행된 것을 확인할 수 있었습니다.
출력 파일이 a.out이 아닌 다른 이름을 사용하고 싶습니다. 이번에는 출력 파일의 이름을 바꿔보겠습니다. 다음 명령을 입력하면 test라는 이름으로 실행파일이 생성될 것입니다.
$ gcc test.c -o test
test라는 이름의 실행 파일이 생성되었습니다.
마지막으로 2가지만 보고 마무리하겠습니다.
첫 번째는 다음과 같습니다.
위에서 전처리, 컴파일, 어셈블, 링킹 과정을 진행했습니다. 그리고 해당 전단계의 파일을 실행했습니다. 그러나 .i, .s, .o 파일이 아니라 .c 파일을 동일한 명령어로 입력하면 앞의 과정이 모두 실행되고 그 다음 파일이 생성됩니다.
예를들어 .c 파일을 전처리하면 .i가 생성되고, .c 파일을 컴파일하면 바로 .s 파일이 생성되며, .c 파일을 어셈블하면 .o 파일이 나오게 됩니다.
두 번째는 다음과 같습니다.
명령어 뒤에 -o [변경할 이름]을 넣으면 해당 이름으로 파일의 이름이 변경됩니다.
추가로 다른 C언어 환경을 구축하고 싶다면 아래 글을 참고하세요!
2023.06.09 - [Programming Language/C] - C 언어 개발 환경
아래는 큰 도움을 받은 블로그 링크입니다.
https://brunch.co.kr/@mystoryg/57
리눅스 테마 어떻게 하는지 궁금하시죠? 저는 궁금했는데요. 관심 있으시면 아래 글을 참고해 사용해봐요!
2023.08.31 - [Tools] - oh-my-zsh, powerlevel10k 테마 재설정 및 한글 폰트 설정