Ubuntu_make_file - 8BitsCoding/RobotMentor GitHub Wiki
- ์ฐธ๊ณ ์ฌ์ดํธ1 : make์ ๋ฐ์ ๋ด์ฉ
- ์ฐธ๊ณ ์ฌ์ดํธ2 : ์ฌํ
- ์ฐธ๊ณ ์ฌ์ดํธ3 : ์ข์์ค๋ช
- -L, -I์ ๊ดํ์ฌ
์ ๊ทธ๋ฆผ๋๋ก 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
๋งค๋ฒ์ด๋ฐ์์ ๋น๋๊ฐ ์ฝ์ง ์๋ค...
- ๋งคํฌ๋ก
- ๋ชฉ์ ํ์ผ
- ์์กด์ฑ
- ๋ช ๋ น์ด
$ 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
-
$@
: ํ์ฌ ํ๊ฒ์ ์ด๋ฆ -
$^
: ํํ ํ๊ฒ์ ์ข ์ ํญ๋ชฉ ๋ฆฌ์คํธ