[Linux] 패키지 관리

JIWON·2025년 5월 22일

Linux

목록 보기
10/20
post-thumbnail

패키지 관리

1️⃣ c언어 컴파일 및 실행 파일 만들기

  • 패키지를 사용하는 방법 중 소스코드를 컴파일 한 후 사용하는 방법이 제공됨

💠 c 컴파일러(gcc) 설치

1. gcc 있는 지 확인

gcc

2. 없으면 설치

sudo apt install gcc

💠 소스코드 작성

1. vi hello.c

#include <stdio.h>

int main(){
	printf("hello world\n");
    return 0;
}

💠 컴파일

gcc hello.c

-> 성공 시 a.out 실행 파일 생성

🔸 실행파일명 변경

gcc -o hello hello.c

-> hello 실행파일이 생성

💠 실행

  • 리눅스는 실행 명령을 주게되면 path에서만 찾는다.
  • path 이외의 곳에 있는 파일을 실행 할 때는 절대경로로 입력하던가 상대경로를 가지고 입력 ./
./a.out

실행시키면 코드가 실행이된다

2️⃣ make

  • 많은 파일로 구성된 프로그램은 gcc로 일일이 컴파일해서 실행 파일로 만드는 것이 번거롭다
  • makefile 이라는 설정파일을 이용해서 여러 소스 파일을 한꺼번에 컴파일하고 링크해서 실행 파일을 생성해주는 명령고 링크해서 실행 파일을 생성해주는 명령
  • makefile : 컴파일 및 링크 설정

💠 make 설치

sudo apt install make

💠 소스파일 생성

1. one.c

#include <stdio.h>

int main(){
        printf("Go To Module Two\n");
        two();
        printf("End of Module One\n");
        return 0;
}     

2. two.c

#include <stdio.h>
int two(){
        printf("In Module Two\n");
        printf("This is a Module Two\n");
        printf("End of Module Two\n");
        return 0;
}      

💠 makefile 작성

vi makefile

# 최종적으로 만들 실행 파일 이름을 지정
TARGET=one                  

# 컴파일 후 연결할 오브젝트 파일들 지정
OBJECTS=one.o two.o         

# ----------------------------------------
# [1] 실행 파일 생성 규칙
# 만약 one 이 존재하지 않거나 one.o 또는 two.o 중 하나라도 수정되었다면 이 규칙이 실행됨
${TARGET} : ${OBJECTS}
	# gcc를 사용하여 OBJECTS에 명시된 오브젝트 파일들을 링크하여 실행파일 생성
	gcc -o ${TARGET} ${OBJECTS}

# ----------------------------------------
# [2] one.c 파일을 컴파일하여 one.o 생성
# 만약 one.o가 없거나 one.c가 수정되었다면 실행됨
one.o : one.c
	# one.c를 컴파일하여 one.o 생성 (링크는 하지 않음)
	gcc -c one.c

# ----------------------------------------
# [3] two.c 파일을 컴파일하여 two.o 생성
# 만약 two.o가 없거나 two.c가 수정되었다면 실행됨
two.o : two.c
	# two.c를 컴파일하여 two.o 생성 (링크는 하지 않음)
	gcc -c two.c

# 정리 규칙
clean:
	rm -f ${TARGET} ${OBJECTS}

💠 make 명령 수행

실행파일(one)이 생성됨

make

💠 실행

./one

3️⃣ makefile 작성법

실행파일매크로이름=실행파일이름
목적파일패크로이름=목적파일 나열

${실행파일매크로이름}:${목적파일패크로이름}
	gcc -o ${실행파일패크로이름} ${목적파일패크로이름}
   
# 소스파일 컴파일---------------------
목적파일이름 : 소스파일이름
	gcc -c 소스파일이름
.
.
.

0개의 댓글