2.3. 소스에서 소프트웨어 빌드
소프트웨어 빌드 프로세스 중에 소스 코드는 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;
}
절차
GNU Compiler Collection에서 C 컴파일러를 호출하여 소스 코드를 바이너리로 컴파일합니다.
$ gcc -g -o cello cello.c결과 바이너리 셀로를 실행합니다.
$ ./cello Hello World
2.3.1.2. 샘플 C 프로그램에 대한 자동화된 빌드 설정 링크 복사링크가 클립보드에 복사되었습니다!
대규모 소프트웨어는 일반적으로 자동화된 빌드를 사용합니다. Makefile 파일을 만든 다음 GNU make 유틸리티를 실행하여 자동화된 빌드를 설정할 수 있습니다.
절차
cello.c와 동일한 디렉토리에 다음 콘텐츠를 사용하여Makefile파일을 만듭니다.cello: gcc -g -o cello cello.c clean: rm cello install: mkdir -p $(DESTDIR)/usr/bin install -m 0755 cello $(DESTDIR)/usr/bin/cellocello 아래의 줄:,clean:,install:must begin with a tabulation character (tab).소프트웨어를 빌드합니다.
$ make make: 'cello' is up to date.빌드는 현재 디렉터리에서 이미 사용할 수 있으므로
make clean명령을 입력한 다음make명령을 다시 입력합니다.$ make clean rm cello $ make gcc -g -o cello cello.c이 시점에서 프로그램을 다시 빌드하려는 경우 GNU
make시스템이 기존 바이너리를 감지하므로 영향을 미치지 않습니다.$ make make: 'cello' is up to date.프로그램을 실행합니다.
$ ./cello Hello World