[Linux] Build
빌드란?
소스코드에서 실행 가능한 SW로 변환하는 과정 또는 결과물
빌드 과정
-
Compile & Assemble
하나의 소스코드 파일이 0과 1로 구성된 Object 파일로 만들어진다.
gcc -c [c파일명]: c파일이 .o를 가진 object 파일로 변경 -
Linking
만들어진 Object 파일들과 Lib 파일들을 하나로 합친다.
gcc [o파일명] -o [실행파일명] -
실행
실행파일명을 통해 실행시키기
(참고) 빌드 자동화 스크립트
빌드를 해야할 때마다 컴파일과 링크를 하지 않고, 하나의 스크립트를 만들어 스크립트만 실행하여 빌드를 진행하도록 할 수 있습니다.

다음과 같은 명령어를 통해 스크립트 제작 후 실행파일을 실행할 수 있지만, 하나의 파일을 수정해도 모든 파일을 컴파일 및 링크해야 하는 단점이 있다. 결국, 느리다는 단점이 있다.
이 단점을 해결시켜주는게 make 시스템이다.
Build System
Build System : Build 할 때 필요한 여러 작업을 도와주는 프로그램들, 빠르다는 장점이 있다.
종류 :
- make
- cmake
Make
make는 각각의 소스코드 파일의 생성날짜를 기록합니다. 해당 파일을 수정하면 기록날짜가 변경되어, 수정된 파일을 구별할 수 있습니다.
apt install make y를 통해 설치하기
사용 방법
- 기존 object 파일들 및 실행파일들을 삭제해준다.
- "
makefile"이라는 스크립트 파일을 생성한다.make라는 명령어를 통해 스크립트를 실행한다.
makefile 구성

make의 장점은 수정된 파일만 컴파일 및 링크하기 때문에 속도가 빠르다.
CMake
make보다 조금 더 편한 방식인 cmake 방식이다.
cmake : makefile를 자동 생성할 수 있는 build system(빌드 과정에 도움을 주는 툴)
sudo apt install g++ cmake y를 통해 cmake 설치
사용 방법
1.
CMakeLists.txt파일 생성
2.cmake .명령어를 통해 makefile 생성
3.make명령어를 통해 빌드
4../[실행파일명]으로 생성한 실행파일 실행
CMakeLists.txt

Make 스크립트 기초
실행 규칙
make [Target 명] : 지정된 Target을 수행한다.
make : 첫 번째 Target을 수행한다.
스크립트 내에는 반드시 1개 이상의 Target이 존재해야 한다.
echo : 화면 출력 shell 명령어, 띄어쓰기는 그냥 띄면 되는데, 어려번 띄어도 1번 띈걸로 판단합니다.
@echo : 두 번 출력을 막는다. 결과만 출력된다.
$@ : Target을 나타내는 변수
HI :
echo "Hello";
make HI
==>
echo "Hello";
"Hello";
///////////////
HI :
@echo "Hello";
make HI
==>
"Hello";
의존성 타겟

해당 이미지에서 bluepink라는 타겟 옆에 적은 부분이 의존성 타겟에 해당됩니다.
매크로
매크로는 결국 변수를 뜻합니다.
매크로는 어느 위치든 작성해줘도 되지만, 매크로는 대체로 위에다 작성하면 밑에 작성해도 위에서 인식하도록 동작된다.

주석
#을 통해 주석
연산자
+=기호는 한 칸 띄어쓰기 후 뒤에 붙인다.
:= -> 현재 기준에서의 값을 넣는다.
= -> 최종 변수 결과를 집어 넣는다.

Author And Source
이 문제에 관하여([Linux] Build), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev-hoon/Linux-Build저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)