개요
Build System 이란, Build 할 때 필요한 여러 작업을 도와주는 프로그램들을 의미한다.
빌드란 소스코드에서 실행 가능한 소프트 웨어로 변환하는 과정 또는 결과물을 말한다.
C언어 빌드 과정
gcc 기준 빌드 과정은 크게 둘로 나뉜다.
- Compile & Assemble : 하나의 소스코드 파일이 0과 1로 구성된 Object 파일이 만들어짐
- Linking : 만들어진 Object 파일들 + Library 들을 모아 하나로 합침
gcc 빌드 실습
- /test1 디렉토리를 생성 한다.
- 해당 디렉토리로 이동 후 main.c, yellow.c, yellow.h 파일을 생성한다.
- 2번에서 생성한 각각의 파일에 소스 코드를 입력해 준다.
- .c 파일을 각각 Compile & Assemble 한다.
- .o 파일(Object 파일)이 생성되는지 확인 한다.
- 만들어진 Object 파일들과 라이브러리 함수들을 하나로 합친다. (Linking)
main.c
#include <stdio.h>
#include "yellow.h"
int main() {
printf("I'm Green!\n");
yellow();
return 0;
}
yellow.c
#include<stdio.h>
void yellow() {
printf("I'm yellow\n");
}
yellow.h
void yellow();
파일 생성
빌드 자동화 스크립트
bash shell script 를 이용한 build 방식을 다루어 본다.
자동화 프로그램 개발에 특화된 Script 언어 .sh가 있다.
bash shell 명령어로 스크립트를 제작하고 실행한다.
- ~/test1/ 를 복사해서 ~/test2 생성
- cp –r ~/test1 ~/test2
- vi ~/test2/build.sh
- source build.sh
- ./gogo
#! /bin/bash
gcc -c ./main.c
gcc -c ./yellow.c
gcc ./main.o ./yellow.o -o ./gogo
rm -r ./*.o
yellow.c 하나만 수정해도, 다시 build 를 진행하게 된다.
main.c 는 다시 build 할 필요가 없지만, 다시 build 가 된다.
이럴 때 필요한 게 바로 make build system이다.
728x90
'임베디드 > 리눅스(Linux)' 카테고리의 다른 글
리눅스 빌드 시스템(3) cmake Linux Build System cmake (0) | 2024.09.12 |
---|---|
리눅스 빌드 시스템(2) make Linux Build System make (0) | 2024.09.12 |
리눅스 파일의 종류와 권한 Linux File (0) | 2024.09.11 |
리눅스 사용자 그룹 Linux Group (0) | 2024.09.11 |
리눅스 사용자 Linux User (1) | 2024.09.11 |