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
프로그램을 수동으로 빌드하려면 다음 절차를 사용하십시오.
절차
GNU 컴파일러에서 C 컴파일러를 호출하여 소스 코드를 바이너리로 컴파일합니다.
gcc -g -o cello cello.c
결과 출력 바이너리 셀오를 실행합니다.
$ ./cello Hello World
2.3.1.2. 자동화된 빌드
대규모 소프트웨어는 일반적으로 Makefile
파일을 만든 다음 GNU make
유틸리티를 실행하여 수행되는 자동화된 빌드를 사용합니다.
cello.c
프로그램을 구축하기 위해 자동화된 빌딩을 사용하려면 다음 절차를 사용하십시오.
절차
자동 빌드를 설정하려면
cello.c
와 동일한 디렉터리에 다음 콘텐츠를 사용하여Makefile
파일을 만듭니다.Makefile
cello: gcc -g -o cello cello.c clean: rm cello
cello:
및clean:
아래의 행은 탭으로 시작해야 합니다.소프트웨어를 빌드하려면
make
명령을 실행합니다.$ make make: 'cello' is up to date.
이미 사용 가능한 빌드가 있으므로
make clean
명령을 실행한 후make
명령을 다시 실행합니다.$ make clean rm cello $ make gcc -g -o cello cello.c
참고다른 빌드 후에 프로그램을 빌드하려고 하면 효과가 없습니다.
$ make make: 'cello' is up to date.
프로그램을 실행합니다.
$ ./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
를 바이트 코드로 컴파일하려면 이 절차를 사용하십시오.
절차
byte-compile
pello.py
파일:$ python -m compileall pello.py $ file pello.pyc pello.pyc: python 2.7 byte-compiled
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