검색

2.3. 소스에서 소프트웨어 빌드

download PDF

소프트웨어 빌드 프로세스 중에 소스 코드는 RPM을 사용하여 패키징할 수 있는 소프트웨어 아티팩트로 변환됩니다.

2.3.1. 기본적으로 컴파일된 코드에서 소프트웨어 빌드

다음 방법 중 하나를 사용하여 컴파일된 언어로 작성된 소프트웨어를 실행 파일로 빌드할 수 있습니다.

  • 수동 빌딩
  • 자동화된 빌드

2.3.1.1. 수동으로 샘플 C 프로그램 빌드

수동 빌드를 사용하여 컴파일된 언어로 작성된 소프트웨어를 빌드할 수 있습니다.

C (cello.c)로 작성된 샘플 Hello World 프로그램에는 다음과 같은 내용이 있습니다.

#include <stdio.h>

int main(void) {
    printf("Hello World\n");
    return 0;
}

절차

  1. GNU 컴파일러 컬렉션에서 C 컴파일러를 호출하여 소스 코드를 바이너리로 컴파일합니다.

    $ gcc -g -o cello cello.c
  2. 결과 바이너리 셀로를 실행합니다.

    $ ./cello
    Hello World

2.3.1.2. 샘플 C 프로그램에 대한 자동화된 빌드 설정

대규모 소프트웨어는 일반적으로 자동화된 빌드를 사용합니다. Makefile 파일을 만든 다음 GNU make 유틸리티를 실행하여 자동화된 빌드를 설정할 수 있습니다.

절차

  1. cello.c 와 동일한 디렉토리에 다음 콘텐츠를 사용하여 Makefile 파일을 만듭니다.

    cello:
    	gcc -g -o cello cello.c
    clean:
    	rm cello

    cello:clean 아래의 줄은 탭 문자(tab)로 시작해야 합니다.

  2. 소프트웨어를 빌드합니다.

    $ make
    make: 'cello' is up to date.
  3. 빌드는 현재 디렉터리에서 이미 사용할 수 있으므로 make clean 명령을 입력한 다음 make 명령을 다시 입력합니다.

    $ make clean
    rm cello
    
    $ make
    gcc -g -o cello cello.c

    이 시점에서 프로그램을 다시 빌드하려는 경우 GNU make 시스템이 기존 바이너리를 감지하므로 영향을 미치지 않습니다.

    $ make
    make: 'cello' is up to date.
  4. 프로그램을 실행합니다.

    $ ./cello
    Hello World

2.3.2. 소스 코드 해석

해석된 프로그래밍 언어로 작성된 소스 코드를 다음 방법 중 하나를 사용하여 머신 코드로 변환할 수 있습니다.

  • 바이트 컴파일

    바이트 컴파일 소프트웨어의 절차는 다음 요인에 따라 다릅니다.

    • 프로그래밍 언어
    • 언어의 가상 머신
    • 해당 언어로 사용되는 툴 및 프로세스

      참고

      예를 들어 Python 에서 작성된 소프트웨어를 바이트로 작성할 수 있습니다. 배포를 위해 설계된 Python 소프트웨어는 종종 바이트로 컴파일되지만 이 문서에서 설명하는 방식에는 포함되지 않습니다. 설명된 절차는 커뮤니티 표준을 준수하는 것이 아니라 간단하게 하는 것을 목표로 합니다. 실제 Python 지침은 소프트웨어 패키징 및 배포를 참조하십시오.

    또한 원시 해석 Python 소스 코드도 사용할 수 있습니다. 그러나 바이트로 컴파일된 버전이 더 빠릅니다. 따라서 RPM 패키지는 최종 사용자에게 배포하기 위해 바이트로 컴파일된 버전을 패키징하는 것을 선호합니다.

  • Raw-interpreting

    Bash 와 같은 쉘 스크립팅 언어로 작성된 소프트웨어는 항상 원시 해석에 의해 실행됩니다.

2.3.2.1. 샘플 Python 프로그램 바이트 컴파일

Python 소스 코드의 원시 해석을 통해 바이트 컴파일을 선택하면 더 빠른 소프트웨어를 만들 수 있습니다.

Python 프로그래밍 언어(pello.py)로 작성된 샘플 Hello World 프로그램에는 다음과 같은 내용이 있습니다.

print("Hello World")

절차

  1. pello.py 파일을 바이트 압축합니다.

    $ python -m compileall pello.py
  2. 바이트로 컴파일된 파일 버전이 생성되었는지 확인합니다.

    $ ls __pycache__
    pello.cpython-311.pyc

    출력의 패키지 버전은 설치된 Python 버전에 따라 다를 수 있습니다.

  3. pello.py 에서 프로그램을 실행합니다.

    $ python pello.py
    Hello World

2.3.2.2. 샘플 Bash 프로그램 원시 해석

Bash 쉘로 내장된 언어(llo)로 작성된 샘플 Hello World 프로그램에는 다음과 같은 내용이 있습니다.

#!/bin/bash

printf "Hello World\n"
참고

벨로 파일의 상단에 있는 shebang (#!)기호는 프로그래밍 언어 소스 코드의 일부가 아닙니다.

shebang 을 사용하여 텍스트 파일을 실행 파일로 전환합니다. 시스템 프로그램 로더는 shebang 이 포함된 행을 구문 분석하여 바이너리 실행 파일의 경로를 가져온 다음 프로그래밍 언어 인터프리터로 사용됩니다.

절차

  1. 소스 코드로 파일을 실행 가능하게 만듭니다.

    $ chmod +x bello
  2. 생성된 파일을 실행합니다.

    $ ./bello
    Hello World
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.