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


이 부분에서는 소스 코드에서 소프트웨어를 빌드하는 방법을 설명합니다.

컴파일된 언어로 작성된 소프트웨어의 경우 소스 코드는 빌드 프로세스를 통해 머신 코드를 생성합니다. 일반적으로 컴파일 또는 번역이라고 하는 이 프로세스는 언어에 따라 다릅니다. 결과적으로 구축된 소프트웨어를 실행할 수 있으므로 컴퓨터가 지정한 작업을 수행할 수 있습니다.

원시 해석 언어로 작성된 소프트웨어의 경우 소스 코드는 빌드되지 않지만 직접 실행됩니다.

바이트-ECDHE 해석 언어로 작성된 소프트웨어의 경우 소스 코드는 바이트 코드로 컴파일되며, 언어 가상 머신에서 실행됩니다.

2.3.1. 기본적으로 컴파일된 코드

이 섹션에서는 C 언어로 작성된 cello.c 프로그램을 실행 파일로 빌드하는 방법을 보여줍니다.

cello.c

#include <stdio.h>

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

2.3.1.1. 수동 빌드

cello.c 프로그램을 수동으로 빌드하려면 다음 절차를 사용하십시오.

절차

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

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

    $ ./cello
    Hello World

2.3.1.2. 자동화된 빌드

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

cello.c 프로그램을 구축하기 위해 자동화된 빌딩을 사용하려면 다음 절차를 사용하십시오.

절차

  1. 자동 빌드를 설정하려면 cello.c 와 동일한 디렉터리에 다음 콘텐츠를 사용하여 Makefile 파일을 만듭니다.

    Makefile

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

    cello:clean: 아래의 행은 탭으로 시작해야 합니다.

  2. 소프트웨어를 빌드하려면 make 명령을 실행합니다.

    $ make
    make: 'cello' is up to date.
  3. 이미 사용 가능한 빌드가 있으므로 make clean 명령을 실행한 후 make 명령을 다시 실행합니다.

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

    다른 빌드 후에 프로그램을 빌드하려고 하면 효과가 없습니다.

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

    $ ./cello
    Hello World

이제 프로그램을 수동으로 컴파일하고 빌드 도구를 사용합니다.

2.3.2. 코드 해석

이 섹션에서는 Python 으로 작성된 프로그램 및 bash 로 작성된 프로그램을 바이트 컴파일하는 방법을 보여줍니다.

참고

아래 두 가지 예에서 파일 맨 위에 있는 #! 행은 행 이라고 하며 프로그래밍 언어 소스 코드의 일부가 아닙니다.

he bang 을 사용하면 텍스트 파일을 실행 파일로 사용할 수 있습니다. 시스템 프로그램 로더는 바운드 포함된 행을 구문 분석하여 바이너리 실행 파일의 경로를 가져온 다음 프로그래밍 언어 인터프리터로 사용됩니다. 기능을 사용하려면 텍스트 파일이 실행 파일로 표시됩니다.

2.3.2.1. 바이트 컴파일 코드

이 섹션에서는 Python으로 작성된 pello.py 프로그램을 바이트 코드로 컴파일하는 방법을 보여주고 Python 언어 가상 머신에서 실행합니다.

Python 소스 코드도 원시 해석할 수 있지만 바이트-ECDHE 버전이 더 빠릅니다. 따라서 RPM Packagers는 최종 사용자에게 배포하기 위해 바이트-ECDHE 버전을 패키징하는 것을 선호합니다.

pello.py

#!/usr/bin/python3

print("Hello World")

바이트 컴파일 프로그램 절차는 다음 요인에 따라 다릅니다.

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

Python 은 종종 바이트-ECDHE이지만 여기에 설명된 방식으로는 아닙니다. 다음 절차는 커뮤니티 표준을 준수하는 것이 아니라 단순함을 목표로 합니다. 실제 Python 지침은 소프트웨어 패키징 및 배포를 참조하십시오.

pello.py 를 바이트 코드로 컴파일하려면 이 절차를 사용하십시오.

절차

  1. byte-compile pello.py 파일:

    $ python -m compileall pello.py
    
    $ file pello.pyc
    pello.pyc: python 2.7 byte-compiled
  2. pello.pyc 에서 바이트 코드를 실행합니다.

    $ python pello.pyc
    Hello World

2.3.2.2. Raw-interpreting 코드

이 섹션에서는 bash 쉘 내장 언어로 작성된 bello 프로그램을 raw-interpret하는 방법을 보여줍니다.

bello

#!/bin/bash

printf "Hello World\n"

bash 와 같이 쉘 스크립팅 언어로 작성된 프로그램은 raw가 해석됩니다.

절차

  • 소스 코드를 사용하여 파일을 실행하고 실행합니다.

    $ chmod +x bello
    $ ./bello
    Hello World
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.