목차
- 리눅스 Makefile C 소스코드 컴파일 및 정적 라이브러리 생성하기 이전 포스팅 참고 학습
- 리눅스 crontab 일, 주 단위 주기 실행 스크립트 작성하기 이전 포스팅 참고 학습
- 리눅스 traceroute 라우팅 추적하기 이전 포스팅 참고 학습
- 리눅스 Makefile ifdef 문법으로 특정 함수 포함 및 호출 C 소스코드 작성 예쩨
- 리눅스 Maefile C 플래그 추가 및 컴파일 문법 예제
리눅스 Makefile C 소스코드 컴파일 및 정적 라이브러리 생성하기 이전 포스팅 참고 학습
이전 포스팅에서는 Makefile을 사용하여 C 소스 코드를 컴파일하고 정적 라이브러리를 생성하는 방법을 배웠습니다. 라이브러리는 미리 구성한 함수를 다른 프로그램 개발시에 링크하여 그대로 사용할 수 있도록 하는 컴포터블한 바이너리입니다. 따라서 간단한 함수들을 정적 라이브러리로 빌드하여 소지하여 다른 프로그램 개발시에 유용합니다. 리눅스 환경에서 Makefile로 C 소스코드를 컴파일하여 정적 라이브러리를 얻는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.18 - [C] - [Linux/C] 리눅스 Makefile 문법 C 컴파일 및 정적 라이브러리 생성 예제(Make, Static Library)
리눅스 crontab 일, 주 단위 주기 실행 스크립트 작성하기 이전 포스팅 참고 학습
이전 포스팅에서는 리눅스 시스템에서 crontab을 사용하여 주기적으로 스크립트를 실행하는 방법을 학습했습니다. 스케줄링 작업을 자동화하는데 유용한 도구입니다. crontab은 시간, 일, 주, 월 단위로 다양하게 반복적인 실행을 도와줍니다. 예를들어 일주일마다 정해진 시간에 초기화 스크립트를 실행해야한다면 리눅스에서는 이러한 crontab을 통하여 주기로 실행이 가능합니다. 리눅스 환경에서 crontab으로 일, 주 단위 주기 실행 스크립트 작성법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.02 - [Linux] - [Linux/Shell] crontab 일정 주기 실행 스크립트 작성 - 2(일, 주 단위 설정)
리눅스 traceroute 라우팅 추적하기 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 traceroute 명령어를 사용하여 리눅스 시스템에서 네트워크 라우팅을 추적하는 방법을 알아보았습니다. 네트워크 문제 해결과 디버깅에 도움을 주는 유용한 도구입니다. 특히 어떤 사이트는 인터넷 통신이 정상적으로 진행되지만 어떤 사이트는 통신이 불가능하다면 중간 라우팅에서 차단이 되거나 통신이 불가능한 상태일 수 있습니다. 이러한 상황을 파악하기 위해서는 리눅스를 예로들면 traceroute와 같은 라우팅 추적 디버깅 도구를 활용할 수 있습니다. 해당 내용과 예제가 궁금하시다면 아래 링크를 참고해주세요.
2023.08.01 - [Linux] - [Linux] traceroute 라우팅 추적하기
리눅스 Makefile ifdef 문법으로 특정 함수 포함 및 호출 C 소스코드 작성 예쩨
아래는 Makefile 내에서 조건부 컴파일을 사용하여 특정 함수를 포함하고 호출하는 C 소스 코드 작성 예제입니다. ifdef 키워드를 사용하면 컴파일시 특정 플래그가 포함될 경우만 특정 함수가 포함되어 실행 파일이 생성될 수 있도록 합니다.
우선 헤더 파일입니다.
// myfunctions.h
#ifndef MYFUNCTIONS_H
#define MYFUNCTIONS_H
#ifdef ENABLE_FEATURE_A
void featureA();
#endif
void commonFunction();
#endif
다음은 C 소스 코드입니다.
// myfunctions.c
#include "myfunctions.h"
#include <stdio.h>
#ifdef ENABLE_FEATURE_A
void featureA() {
printf("Feature A is enabled!\n");
}
#endif
void commonFunction() {
printf("Common function called.\n");
}
void main() {
printf("start\n");
commonFunction();
#ifdef ENABLE_FEATURE_A
featureA();
#endif
}
리눅스 Maefile C 플래그 추가 및 컴파일 문법 예제
아래는 Makefile을 사용하여 C 코드 컴파일 시에 플래그를 추가하는 문법과 예제입니다. 이러한 플래그 추가를 이용하여 실제 함수가 추가되거나 추가되지않도록 하는 트릭이 가능합니다.
# Makefile
CC = gcc
CFLAGS = -Wall -g
TARGET = myprogram
SOURCES = myfunctions.c
HEADERS = myfunctions.h
CFLAGS += -DENABLE_FEATURE_A
all: $(TARGET)
$(TARGET): $(SOURCES) $(HEADERS)
$(CC) $(CFLAGS) -o $(TARGET) $(SOURCES)
clean:
rm -f $(TARGET)