개발/개발도구와 환경(22)
-
Makefile - 4. 고급 Makefile 작성 (4-2. 병렬 빌드 (Parallel Build))
📌 4-2. 병렬 빌드 (Parallel Build)Makefile에서 병렬 빌드(Parallel Build)는 여러 개의 컴파일 작업을 동시에 실행하여 빌드 속도를 향상시키는 기법입니다.이를 위해 make -j 옵션과 $(MAKE) 변수를 활용할 수 있습니다.1. 병렬 빌드(Parallel Build)란?📌 1-1. 병렬 빌드의 개념기본적으로 make는 직렬(Sequential)로 실행됩니다.하지만, 여러 개의 소스 파일을 각각 독립적으로 컴파일할 수 있는 경우,여러 개의 CPU 코어를 활용하여 동시에 컴파일을 수행하면 빌드 속도가 크게 향상됩니다.📌 1-2. 병렬 빌드가 필요한 이유✅ 빌드 속도 향상멀티코어 CPU를 활용하여 여러 개의 파일을 동시에 컴파일프로젝트 규모가 커질수록 빌드 시간이 단..
2025.03.11 -
Makefile - 4. 고급 Makefile 작성 (4-1. 다중 디렉토리 관리 (Managing Multiple Directories))
📌 4-1. 다중 디렉토리 관리 (Managing Multiple Directories)대규모 프로젝트에서는 소스 코드가 여러 개의 서브 디렉토리(Subdirectories)에 분산될 수 있습니다.이때, 각각의 서브 디렉토리에서 Makefile을 실행하면 빌드를 더욱 효율적으로 관리할 수 있습니다.Makefile에서 다중 디렉토리를 관리하는 대표적인 방법으로 다음과 같은 기법이 사용됩니다.SUBDIRS 패턴을 사용하여 서브 디렉토리별로 make 실행make -C subdir을 활용하여 서브 디렉토리에서 개별적으로 빌드 수행1. 다중 디렉토리를 관리하는 이유📌 1-1. 왜 다중 디렉토리 관리가 필요한가?✅ 대규모 프로젝트 관리 용이하나의 Makefile에서 모든 소스 파일을 관리하는 것은 비효율적디렉토..
2025.03.11 -
Makefile - 3. Makefile의 기능 확장 (3-3. 조건문 활용 (Conditional Statements))
📌 3-3. 조건문 활용 (Conditional Statements)Makefile에서 조건문(Conditional Statements)을 사용하면 특정 상황에 따라 다른 빌드 옵션을 적용할 수 있습니다.이를 활용하면 디버그 모드, 특정 기능 활성화, 환경 변수 설정 등을 유동적으로 변경할 수 있습니다.1. 조건문(Conditional Statements)이란?📌 1-1. Makefile에서 조건문을 사용하는 이유✅ 환경에 따라 다른 빌드 옵션 적용디버그 모드(DEBUG=1일 때 -g 플래그 추가)특정 기능(FEATURE_X 활성화 시 -DFEATURE_X 플래그 추가)✅ 플랫폼별 빌드 설정 가능Windows와 Linux에서 다른 컴파일러 옵션 적용 가능✅ 유지보수 및 확장성 향상특정 조건에 따라 M..
2025.03.11 -
Makefile - 3. Makefile의 기능 확장 (3-2. 포함 파일 (Include))
📌 3-2. 포함 파일 (Include)Makefile에서 포함 파일(Include)을 사용하면 외부 설정 파일을 불러와 Makefile을 더 효율적으로 관리할 수 있습니다.이를 활용하면 설정값을 분리하여 유지보수성을 향상시킬 수 있으며, 다중 Makefile을 관리하는 구조를 구축할 수도 있습니다.1. 포함 파일(Include)이란?📌 1-1. 포함 파일(Include)의 개념Makefile에서 include 키워드를 사용하여 외부 설정 파일을 불러올 수 있음.설정 파일을 분리하여 관리하면 Makefile의 가독성이 높아지고 유지보수가 쉬워짐.프로젝트가 커질수록 다중 Makefile을 관리하는 구조가 필요해짐.2. include config.mk로 외부 설정 파일 불러오기📌 2-1. include..
2025.03.11 -
Makefile - 3. Makefile의 기능 확장 (3-1. Makefile에서 함수 사용하기)
📌 3-1. Makefile에서 함수 사용하기Makefile에서는 함수(Function)를 사용하여 파일 목록을 자동으로 가져오거나, 특정 문자열을 변환하거나, 쉘 명령을 실행할 수 있습니다.이를 활용하면 보다 동적인 Makefile을 작성할 수 있으며, 빌드 자동화를 보다 효과적으로 수행할 수 있습니다.1. Makefile에서 함수(Function)란?📌 1-1. Makefile 함수의 역할자동화된 파일 관리: 특정 확장자를 가진 파일 목록을 가져오거나 변환할 수 있음.동적인 빌드 시스템 구성: 변수와 함수를 조합하여 실행 파일을 자동 생성할 수 있음.쉘 명령어 실행: 시스템 명령어를 Makefile 내에서 실행할 수 있음.📌 1-2. Makefile에서 함수의 기본 형식Makefile 함수는 다..
2025.03.11 -
Makefile - 2. Makefile의 기본 문법 (2-4. 사전 정의된 규칙 (Implicit Rules))
📌 2-4. 사전 정의된 규칙 (Implicit Rules)Makefile에는 특정 작업을 자동화하는 사전 정의된 규칙(Implicit Rules)이 포함되어 있습니다.이 규칙들은 make가 내부적으로 제공하는 기능으로, 개발자가 직접 정의하지 않아도 자동으로 컴파일 과정이 수행됩니다.특히 C/C++ 프로그램의 컴파일을 자동화하는 데 유용합니다.1. 사전 정의된 규칙(Implicit Rules)이란?📌 1-1. 사전 정의된 규칙의 개념Makefile에서 규칙을 직접 정의하지 않아도 자동으로 실행되는 규칙을 의미합니다.make는 특정한 파일 확장자(예: .c, .cpp, .o 등)를 기반으로 자동으로 적절한 명령어를 실행합니다.📌 1-2. 사전 정의된 규칙의 동작 방식make는 파일 확장자와 관련된 ..
2025.03.11