목차
- 리눅스 Makefile C 소스코드 1개 컴파일 및 오브젝트 생성하기 이전 포스팅 참고 학습
- 리눅스 Makefile C 모듈 여러개 합하여 오브젝트 생성하기 이전 포스팅 참고 학습
- 리눅스 우분투 MariaDB connector 설치하기 이전 포스팅 참고 학습
- 리눅스 Makefile 1개 C코드와 헤더 파일 작성 예제
- 리눅스 Makefile C코드 및 헤더 추가하여 오브젝트 생성을 위한 작성 예제
리눅스 Makefile C 소스코드 1개 컴파일 및 오브젝트 생성하기 이전 포스팅 참고 학습
이전 포스팅에서는 Makefile을 사용하여 하나의 C 소스 코드를 컴파일하고 오브젝트 파일을 생성하는 방법을 학습했습니다. 단일 C 소스코드를 컴파일하여 실행파일을 얻는 예제입니다. 이 과정에서 Makefile을 어떻게 작성하면 make 명령으로 컴파일되는지 확인하였습니다. make 명령으로 C 소스코드 컴파일 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.15 - [Linux] - [Linux/C] 리눅스 Makefile 문법 C 소스코드 컴파일 및 오브젝트 생성 예제(Make)
리눅스 Makefile C 모듈 여러개 합하여 오브젝트 생성하기 이전 포스팅 참고 학습
이전 포스팅에서는 여러 개의 C 모듈을 합쳐서 하나의 오브젝트 파일로 생성하는 방법을 학습했습니다. Makefile을 사용하여 모듈 간의 의존성을 관리하고, 모듈을 효율적으로 빌드하여 소프트웨어 프로젝트를 개발하는 예제입니다. 단일 C 소스코드가 아닌 여러개의 모듈을 한개의 오브젝트로 합치는 예제입니다. 만약 리눅스 Makefile에서 여러개의 C 모듈을 합치는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.16 - [Linux] - [Linux/C] 리눅스 Makefile 문법 C 모듈 여러개 합하여 실행 파일 생성 예제
리눅스 우분투 MariaDB connector 설치하기 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 우분투 리눅스 환경에서 MariaDB Connector를 설치하는 방법을 학습했습니다. 데이터베이스 연결을 위한 필수 라이브러리를 설치하고 구성하는 방법을 확인하실 수 있습니다. 이전 포스팅에서 확인한 우분투 환경에서 MariaDB 서버를 구성하고 아래 링크를 통해 MariaDB 커넥터 설치 예제를 활용한다면 MariaDB 연결이 가능합니다.
2023.09.06 - [Linux/Shell Script] - [Linux/C] 우분투 MariaDB connector 설치(라이브러리 설치)
리눅스 Makefile 1개 C코드와 헤더 파일 작성 예제
아래는 Makefile을 사용하여 하나의 C 코드 파일과 해당 코드에 필요한 헤더 파일을 함께 컴파일하는 예제입니다. 이전 포스팅에서는 c 모듈만 컴파일했다면 이번 예제에서는 헤더파일도 포함시켜보겠습니다.
우선 main.c 코드입니다.
// main.c
#include <stdio.h>
#include "myfunc.h"
int main() {
int result = add(3, 4);
printf("Result: %d\n", result);
return 0;
}
다음으로 헤더가 참조할 함수가 포함된 myfunc.c 모듈입니다.
// myfunc.c
int add(int a, int b) {
return a + b;
}
아래는 myfunc에서 사용중인 add 함수원형이 포함된 헤더파일입니다.
// myfunc.h
#ifndef MYFUNC_H
#define MYFUNC_H
int add(int a, int b);
#endif
리눅스 Makefile C코드 및 헤더 추가하여 오브젝트 생성을 위한 작성 예제
아래는 C 코드 파일과 헤더 파일을 함께 사용하여 오브젝트 파일을 생성하는 방법에 대한 예제입니다.
# Makefile
CC = gcc
CFLAGS = -Wall -g
TARGET = myprogram
SOURCES = main.c myfunc.c
HEADERS = myfunc.h
all: $(TARGET)
$(TARGET): $(SOURCES) $(HEADERS)
$(CC) $(CFLAGS) -o $(TARGET) $(SOURCES)
clean:
rm -f $(TARGET)