목차
- 리눅스 Makefile C플래그 추가 및 ifdef 조건부 함수 추가하기 이전 포스팅 참고 학습
- 리눅스 ps 활용 전체 및 실행중인 프로세스 출력하기 이전 포스팅 참고 학습
- 리눅스 find 명령시 Permission denied 감추기 이전 포스팅 참고 학습
- 리눅스 Makefile 간단한 main.c 소스코드 컴파일을 위한 make 문법 작성 예제
- 리눅스 Makefile 컴파일된 실행파일 복사위한 install과 삭제위한 uninstall make 문법 작성 예제
리눅스 Makefile C플래그 추가 및 ifdef 조건부 함수 추가하기 이전 포스팅 참고 학습
이전 포스팅에서는 Makefile을 사용하여 C 프로젝트를 빌드할 때 플래그를 추가하고, 조건부 함수를 포함시키는 방법을 학습하였습니다. 이는 프로젝트를 커스터마이징하고 다양한 빌드 옵션을 지원하기 위한 중요한 문법입니다. 만약 내가 컴파일할 때 상황에 따라 어떤 시스템 환경에서는 A함수를 추가하고 어떤 시스템에서는 A 함수를 추가하지 않아야한다면, C 플래그를 컴파일시 Makefile에 추가하여 해당 플래그의 존재유무로 함수 추가 여부를 결정할 수 있습니다. 해당 내용이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.18 - [Linux] - [Linux/C] 리눅스 Makefile 문법 C 플래그 및 전처리기 설정 및 컴파일 예제(Make, C flag, ifdef)
리눅스 ps 활용 전체 및 실행중인 프로세스 출력하기 이전 포스팅 참고 학습
이전 포스팅에서는 ps 명령어를 사용하여 리눅스 시스템에서 현재 실행 중인 프로세스를 출력하는 방법을 배웠습니다. 프로세스 관리와 시스템 모니터링에 필요한 기본적인 명령어 사용법을 익힐 수 있습니다. 특히 ps -aux의 명령의 경우 혈재 실행중인 프로세스들의 리소스 사용량도 포함하여 출력합니다. 리소스란 프로세스별 메모리 사용량과 CPU 사용량 등을 포함합니다. 리눅스에서 ps 활용 예제가 궁금하시다면 아래 링크를 참고해주세요.
2023.08.04 - [Linux/OS] - [Linux/Shell] 리눅스 ps 활용 프로세스 출력(특정 사용자 및 트리구조)
리눅스 find 명령시 Permission denied 감추기 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 find 명령어를 사용할 때 ""Permission denied"" 오류를 감추는 방법을 학습했습니다. 이는 파일 시스템 검색 작업을 수행할 때 유용한 기술입니다. 매번 find로 / 와 같은 루트 디렉토리의 파일들을 검색하면 권한 오류로인한 오류 메세지가 출력됩니다. 파일의 양이 많을 수록 화면을 가득채우기 때문에 귀찮아집니다. 따라서 리눅스에서 find 명령 실행힛 Permission denied 문구가 출력되지 않게 하기 위해서는 아래의 포스팅을 참고하여 학습해주세요.
2023.08.29 - [Linux/OS] - [Linux/Ubuntu] 리눅스 find 명령 Permission denied 안나오게 하기 예제(/dev/null)
리눅스 Makefile 간단한 main.c 소스코드 컴파일을 위한 make 문법 작성 예제
아래는 간단한 main.c 소스 코드를 컴파일하는 데 사용되는 Makefile 문법과 예제 코드입니다. 이 Makefile 파일을 활용하여 install, uninstall 등과 같은 명령을 추가해보겠습니다.
우선 C 소스코드 내용입니다.
// main.c
#include <stdio.h>
int main() {
printf("Hello, Makefile!\n");
return 0;
}
리눅스 Makefile 컴파일된 실행파일 복사위한 install과 삭제위한 uninstall make 문법 작성 예제
아래는 Makefile을 사용하여 컴파일된 실행 파일을 다른 위치로 복사하거나 삭제하는 작업을 수행하는 예제입니다. install의 경우 실행 파일을 특정 디렉토리에 복사하고, uninstall의 경우 특정 디렉토리에서 실행파일을 삭제합니다.
# Makefile
CC = gcc
CFLAGS = -Wall
TARGET = myprogram
SOURCES = main.c
INSTALL_DIR = /tmp/install_dir
all: $(TARGET)
$(TARGET): $(SOURCES)
$(CC) $(CFLAGS) -o $(TARGET) $(SOURCES)
install: $(TARGET)
install -m 755 $(TARGET) $(INSTALL_DIR)
uninstall:
rm -f $(INSTALL_DIR)/$(TARGET)
clean:
rm -f $(TARGET)