목차
- 리눅스 Makefile C 모듈 여러개 합쳐 실행 파일 생성하기 이전 포스팅 참고 학습
- 리눅스 Makefile 헤더 파일 추가하여 빌드하기 이전 포스팅 참고 학습
- 리눅스 우분투 아차피 서버 HTTP 응답에 버전 정보 제거하기 이전 포스팅 참고 학습
- 리눅스 Makefile C 정적 라이브러리 소스 코드 작성 예제
- 리눅스 Makefile 정적 라이브러리 컴파일 문법 예제(static library)
리눅스 Makefile C 모듈 여러개 합쳐 실행 파일 생성하기 이전 포스팅 참고 학습
이전 포스팅에서는 여러 개의 C 모듈을 함께 컴파일하여 실행 파일을 생성하는 방법을 학습했습니다. Makefile을 통해 프로젝트의 모듈화와 의존성 관리를 효율적으로 처리하는 방법을 배웠습니다. 만약 codelite, visual code 등이 아닌 Makefile을 통해 C 모듈 컴파일 방법을 찾으신다면 아래 링크의 포스팅을 참고하여 학습해주세요. 단일 모듈이 아닌 여러개의 다 수 C 모듈을 1개의 오브젝트로 컴파일 하는 방법이 포함되어있습니다.
2023.09.16 - [Linux] - [Linux/C] 리눅스 Makefile 문법 C 모듈 여러개 합하여 실행 파일 생성 예제
리눅스 Makefile 헤더 파일 추가하여 빌드하기 이전 포스팅 참고 학습
이전 포스팅에서는 Makefile을 작성하여 헤더 파일을 포함하여 C 코드를 컴파일하고 실행 파일을 생성하는 방법을 알아보았습니다. 또한 C 모듈 컴파일 시에 헤더 파일을 추가하여 오브젝트 생성 방법과 예제를 확인하였습니다. 사전에 헤더파일에 함수 원형 혹은 상수 들을 선언하였고 이를 Make 명령을 통해 추가하고 싶다면 아래 링크의 포스팅을 참고해주세요. 해당 포스팅에는 Makefile에서 헤더 파일을 추가하는 방법에 대해 설명하고 있습니다.
2023.09.17 - [Linux] - [Linux/C] 리눅스 Makefile 헤더 파일 참조 및 추가하기 예제(Make header)
리눅스 우분투 아차피 서버 HTTP 응답에 버전 정보 제거하기 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 우분투 서버에서 HTTP 응답에서 버전 정보를 제거하는 방법을 학습했습니다. 웹 서버 보안 강화를 위해 필요한 설정을 알아보았습니다. 특히 HTTP 응답에 기본 설치된 아파치는 2.4.37 등과 같은 아파치 정보를 포함하여 클라이언트에게 제공합니다. 이를 토대로 보안에 취약한 아파치를 사용하고 있다는 점이 들통나면 악의적으로 사용하여 내 서버를 공격할 수 있는 빌미를 제공할 수 있습니다. 따라서 리눅스 우분투 아파치 서버에서 HTTP 응답에 버전 정보 제거하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
리눅스 Makefile C 정적 라이브러리 소스 코드 작성 예제
아래는 C 언어로 정적 라이브러리를 작성하는 예제 코드입니다. 이후 예제에서 이 소스코드를 Makefile 문법 즉, Make로 컴파일하여 정적 라이브러리로 만들 예정입니다.
우선 헤더 파일입니다.
// mylib.h
#ifndef MYLIB_H
#define MYLIB_H
int add(int a, int b);
#endif
다음은 C 코드입니다.
// mylib.c
#include "mylib.h"
int add(int a, int b) {
return a + b;
}
리눅스 Makefile 정적 라이브러리 컴파일 문법 예제(static library)
아래는 Makefile을 사용하여 정적 라이브러리를 컴파일하는 문법과 예제입니다.
# Makefile
CC = gcc
CFLAGS = -Wall -g
TARGET = libmylib.a
SOURCES = mylib.c
HEADERS = mylib.h
all: $(TARGET)
$(TARGET): $(SOURCES) $(HEADERS)
$(CC) $(CFLAGS) -c $(SOURCES)
ar rcs $(TARGET) $(SOURCES:.c=.o)
clean:
rm -f $(TARGET) $(SOURCES:.c=.o)