make는 컴파일 스크립트 파일이다. 서로의 의존성을 관리하면서 순차적으로 실행 파일들을 만들어낼 수 있다.
예시)
Makefile
diary_exe : test1.o test2.o main.o
g++ -o diary_exe test1.o test2.o main.o
test1.o :
g++ -c test1.cpp
test2.o :
g++ -c test2.cpp
main.o :
g++ -c main.cpp
clean :
rm *.o diary_exe
** 실행명은 그냥 명일뿐 저걸 파일이름 test1.o 이 아니라 jinhyuk으로 바꿔서 dependency 해도 같다. jinhyuk만 하고 dependency는 파일명으로 해도 된다. dependency는 그 프로세스 또는 그 파일을 얘기할 수 있는 것 같다.
** 이미 파일이 있으면 make가 진행되지 않으므로 clean을 하나 만들어둔다. 실행은 make clean으로 한다.
<Makefile 매크로 사용법>
CC = g++
로 하거나
CINCLUDE = -I ~/test
이런식으로 해둔 다음에
실행문 아님 아무튼 아무거나에다가 $(CINCLUDE) 로 쓰면 정확히 그 부분을 그 값으로 치환해 준다.
참고로 dependeny에서 파일명이나 프로세스 암거나 써도 된댔는데, 파일명으로 하면 그 오브젝트 파일이 없는 경우에 그것과 이름이 같은 cpp 파일을 자동으로 오브젝트 파일로 컴파일해서 써준다. 그러므로 이렇게 단순화될 수 있다.
book_exe : main.o test1.o test2.o
g++ -o book_exe main.o test1.o test2.o
>> 자동으로 오브젝트는 만들어 준다.
<기타 매크로>
$@ : 현재 타깃 이름
$^ : 현재 종속 항목 리스트
'2019 > c++' 카테고리의 다른 글
C++ I/O 속도 문제 (0) | 2018.10.14 |
---|---|
Visual Studio 에서 scanf, printf 사용하기 (0) | 2018.06.03 |
c++ 실험실 (0) | 2018.05.04 |
g++ 컴파일러 실험실 (0) | 2018.05.04 |
c++ 라이브러리와 함수 요약 (0) | 2018.04.18 |