Ubuntu_make_file - 8BitsCoding/RobotMentor GitHub Wiki


์˜ˆ์ œ

์ด๋ฏธ์ง€

์œ„ ๊ทธ๋ฆผ๋Œ€๋กœ diary_exe๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค.

$ gedit diary.h
// diary.h
#include <stdio.h>

void memo();
void calendar();
$ gedit memo.c
$ gedit calendar.c
$ gedit main.c
// memo.c
#include "diary.h"

void memo(){
    printf("I'm function memo! \n");
}
// calendar.c
#include "diary.h"

void calendar(){
    printf("I'm function Calendar() \n");
}
// main.c
#include "diary.h"

int main(void) {
    memo();
    calendar();
    return 0;
}

์ปดํŒŒ์ผ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค.

$ gcc -c -o memo.o memo.c
$ gcc -c -o calendar.o calendar.c
$ gcc -c -o main.o main.c

-c : objectํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ์˜ต์…˜
-o : ์ƒ์„ฑ ๋  ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜

$ gcc -o diary_exe main.o memo.o claendar.o

๋งค๋ฒˆ์ด๋Ÿฐ์‹์˜ ๋นŒ๋“œ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค...


makefile ๊ตฌ์„ฑ

  • ๋งคํฌ๋กœ
  • ๋ชฉ์ ํŒŒ์ผ
  • ์˜์กด์„ฑ
  • ๋ช…๋ น์–ด

์ด๋ฏธ์ง€

$ gedit Makefile
diary_exe : memo.o calendar.o main.o
    gcc -o diary_exe memo.o calendar.o main.o

memo.o : memo.c
    gcc -c -o memo.o memo.c

calendar.o : calendar.c
    gcc -c -o calendar.o calendar.c

main.o : main.c
    gcc -c -o main.o main.c

clean :
    rm *.o diary_exe

๋ช…๋ น์–ด ์ฐฝ์—์„œ

$ make

makefile์„ ์‹คํ–‰ํ•ด์ค€๋‹ค.


๋งคํฌ๋กœ ์‚ฌ์šฉ๋ฒ•

CC = gcc
CFLAGS = -W -WALL
TARGET = diary_exe

$(TARGET) : memo.o calendar.o main.o
    $(CC) $(CFLAGS) -o $(TARGET) memo.o claendar.o main.o

memo.o : momo.c
    $(CC) $(CFLAGS) -c -o memo.o memo.c

claendar.o : claendar.c
    $(CC) $(CFLAGS) -c -o claendar.o claendar.c

main.o : main.c
    $(CC) $(CFLAGS) -c -o main.o main.c

clean :
    rm *0. diary_exe

-W -Wall ์ปดํ”ผ์ผ ์‹œ ์ปดํŒŒ์ผ ๋˜์ง€ ์•Š์„ ์ •๋„์˜ ์˜ค๋ฅ˜๋ผ๋„ ๋ชจ๋‘ ์ถœ๋ ฅํ•ด๋‹ฌ๋ผ(๊ทธ๋ƒฅ ๋ฐ›์•„๋“ค์ด์ž)

์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ฐœ์„ 

CC = gcc
CFLAGS = -W -WALL
TARGET = diary_exe
OBJECTS = memo.o main.o calendar.o

all : $(TARGET)

$(TARGET) : $(OBJECTS)
    $(CC) $(CFLAGS) -o $@ $^

clean :
    rm *.o diary_exe
  • $@ : ํ˜„์žฌ ํƒ€๊ฒŸ์˜ ์ด๋ฆ„
  • $^ : ํ˜„ํƒœ ํƒ€๊ฒŸ์˜ ์ข…์† ํ•ญ๋ชฉ ๋ฆฌ์ŠคํŠธ
โš ๏ธ **GitHub.com Fallback** โš ๏ธ