2019/c++

make, premake4 실험실

fw93 2018. 5. 4. 13:51

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