[Makefile 예제] : make 명령어 하나만 치면 자동으로 컴파일이 된다.
1)Home directory에 make_example 디렉토리를 생성하고 해당 디렉토리로 이동한다.
2)vi editor로 Makefile 파일을 생성한다. 🍏tab에 유의하여 만들 것
-------------------------------------------------------------
all : mytest 🍏all : 최종 실행될 파일을 기술
mytest: main.o add.o 🍏mytest를 만들려면 아래와 같은 명령어 형식을 사용해야 함
gcc -o mytest main.o add.o
main.o: add.h main.c 🍏main.o 는 add.h와 main.c가 수정이 되면 다시 만들어져야 함
add.o: add.h add.c 🍏add.o는 add.h와 add.c가 수정이 되면 다시 만들어져야 함
-------------------------------------------------------------
3) main.c 를 생성한다.
-------------------------------------------------------------
#include <stdio.h>
#include "add.h"
void main(int argc, char* argv[])
{
int result = 0;
if (argc < 2) {
printf("Usage : ./mytest <1st num> <2nd num>\n");
return;
}
result = add(atoi(argv[1]), atoi(argv[2]));
printf("Reuslt : %s + %s = %d\n", argv[1], argv[2], result);
return;
}
-------------------------------------------------------------
4) add.h 를 생성한다.
-------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
extern int add(int , int);
-------------------------------------------------------------
5) add.c 를 생성한다.
-------------------------------------------------------------
#include "add.h"
int add(int a, int b)
{
int result;
result = a + b;
return result;
}
-------------------------------------------------------------
6) 명령어 프람프트에서 아래 Command를 실행한다.
student50@linux01:~/make_example$ make
7) mytest을 아래와 같이 실행해본다.
student50@linux01:~/make_example$ ./mytest 1 2
'개발하자' 카테고리의 다른 글
Java CS 지식 정리 (0) | 2022.07.04 |
---|---|
암호 - 대칭 암호화에 대해서 (0) | 2022.06.05 |
컴퓨터공학과 졸업프로젝트로 사투리 오디오북 웹서비스 만들기(Glow-TTS, Django, Docker Compose, 졸프 후기) (0) | 2022.06.01 |
[Linux] shared library 사용하기 (0) | 2021.11.29 |
[Linux] 두개의 분리된 파일을 하나의 실행파일로 합치는 과정 (0) | 2021.11.29 |