리눅스 환경에서 c 파일 컴파일 후 실행하는 방법을 설명하는 글이다.
Window에서 Ubuntu를 사용한다.
vi main.c
main.c 파일을 만들어준다.
i를 눌러 편집 모드로 들어간 뒤 아래 C 코드를 입력해준다. 해당 C 코드를 실행해보겠다. 입력이 끝났으면 Esc->:wq->Enter을 눌러서 터미널로 돌아오자.
#include <stdio.h>
void main(){
printf("Hello, World!\n");
}
리눅스 환경에서 C 파일을 컴파일 하기 위해서는 GCC가 필요하다. GCC (GNU Compiler Collection)는 C, C++ 등 다양한 프로그래밍 언어를 컴파일할 수 있는 컴파일러이다. 주로 C 언어 컴파일러로 많이 사용된다. GCC를 다운받아보자.
sudo apt update
패키지 목록을 최신 상태로 업데이트 한다.
sudo: 관리자(root) 권한으로 실행
apt: 패키지 관리 도구 (Advanced Package Tool)
update: 패키지 목록을 업데이트
sudo apt install -y gcc
GCC를 설치한다.
-y: 모든 질문에 Yes를 자동 응답하여 사용자 확인 없이 설치를 진행한다.
gcc --version
GCC의 버전을 확인한다. 정상적으로 출력되면 설치가 완료된 것이다. 이제 아까 만들었던 main.c를 컴파일 해보자.
gcc -Og -o hello main.c
main.c를 컴파일해서 hello라는 실행파일을 생성한다.
-Og: 디버깅에 최적화된 수준으로 컴파일하도록 설정
-o hello: 출력 파일 이름을 hello로 설정, 기본적으로 실행 파일은 a.out으로 생성됨
main.c: 컴파일할 소스 코드 파일
ls
현재 디렉터리를 보여준다.
hello 파일이 생성되었으면 컴파일에 성공한 것이다. 그럼 이제 파일을 실행해보자.
./hello
현재 디렉터리에 있는 실행 파일 hello 파일을 실행한다. Hello, World!가 제대로 출력되면 성공이다.
.: 현재 디렉터리
/hello: hello라는 실행파일
그런데 왜 ./을 붙여야만 할까? 왜냐하면 리눅스에서는 기본적으로 현재 디렉터리(.)가 실행 경로(PATH)에 포함되어 있지 않기 때문이다. 이 때문에 실행 파일을 실행할 때 디렉터리 경로를 명시적으로 지정해야 한다. 만약 hello만 쳐도 실행이 되도록 하고 싶다면 PATH 경로에 hello를 옮기거나 PATH를 바꿔주면된다.
먼저 PATH 경로에 hello를 옮겨보자.
echo $PATH
현재 PATH 환경변수의 값을 출력한다. 해당 경로 중 하나로 hello를 옮기면 된다.
sudo mv hello /usr/local/bin
hello 파일을 /usr/local/bin으로 옮겼다. 위치는 PATH에 있는 아무 경로에다가 옮기면 된다.
hello
이제 hello만 쳐도 Hello, World!가 정상적으로 출력되는 것을 볼 수 있다. PATH 경로에 hello 파일을 옮겼기 때문이다. 그렇다면 파일을 옮기지 않고 PATH를 변경하여 실행을 시켜보자.
우선 hello 파일을 원래 위치로 옮기자.
sudo mv /usr/local/bin/hello ~
hello 파일을 처음 디렉터리로 옮겼다. ls를 쳐서 hello 파일이 있는지 확인하자.
pwd
현재 디렉터리의 전체 경로를 출력한다. hello 파일이 위치한 경로가 어딘지 복사하자. 필자의 경우 /home/user이다.
export PATH=$PATH:/home/user
환경변수를 설정한다. PATH 환경변수는 $PATH(PATH 기존 값)에다가 /home/user 경로를 추가하여 재설정한다. 이제 hello 치면 정상적으로 작동하는 것을 볼 수 있다. 참고로 터미널을 닫았다가 다시 열면 PATH는 처음 상태로 돌아간다.
그렇다면 영구적으로 환경변수 값을 바꾸고 싶으면 어떻게 해야 할까?
Ubuntu가 재부팅될 때 항상 /etc/profile (모든 사용자에게 적용되는 파일), ~/.profile (현재 사용자에게 적용되는 파일)을 무조건 실행시킨다
vi /etc/profile
// 또는 vi .profile
i를 눌러 편집모드에 들어간다. 마지막 줄의 아래 코드를 추가해준다.
export PATH=$PATH:/home/user
환경변수를 설정한다. 코드를 다 입력했으면 Esc->:wq->Enter을 통해 터미널로 빠져나온다.
source .profile(본인이 수정한 파일의 이름)
수정한 파일(.profile)을 적용시킨다.
이제 Ubuntu를 껐다 켜도 환경변수가 유지가 되는 것을 볼 수있다.
'공부 > Linux' 카테고리의 다른 글
[Linux] 2. Docker 컨테이너에 Apache 서버를 설치하기 (0) | 2025.04.15 |
---|---|
[Linux] 1. Docker 기본 명령어 (0) | 2025.04.15 |
[Linux] 셸 스크립트 작성하기 (1) | 2025.03.30 |
[Linux] Bash Shell을 Zsh Shell로 바꾸기 (0) | 2025.03.28 |
[Linux] 리눅스 명령어 정리 (0) | 2025.03.28 |