728x90
반응형
개요
내가 작성한 소스코드를 gcc로 각각 컴파일하는 것의 불편함을 줄이기 위해 make를 사용한다.
make 프로그램이 빌드를 자동으로 수행하려면 각 소스파일의 의존 관계나 빌드 순서, 빌드 옵션등에 대한 정보가 필요하다.
이러한 정보를 저장하는 파일이 makefile이다.
Make 문법
make 문법의 기본 형식은 3 부분으로 구성되어 있다.
- Target : 생성할 파일 - 특정 레이블을 지정하여 해당 레이블과 관련된 부분만 빌드하는 것이 가능
- Dependency : Target 생성에 필요한 소스파일이나 오브젝트 파일 등을 나타냄
- Command : Dependency에 관련된 파일이 수정되면 실행할 명령을 의미
Target : Dependency ---
Command
Command
*이때 command 앞은 공백이 아니라 무조건 <tap>으로 해야한다.
예시
a.c & b.c -> output.exe
해당 역할을 하는 make file을 만들자.
all : output.exe
a.o : a.c
gcc -c a.c
b.o : b.c
gcc -c b.c
output.exe : a.o b.o
gcc -o ouput.exe a.o b.o
make는 최종으로 생성할 Target의 의존성을 추적하면서 빌드를 처리하기 때문에, 역순으로 따라간다.
맨 아래부터 보면
dependency가 a.o, b.o 이므로, 위에 a.o, b.o를 생성해준다.
가장 윗 부분에는 all이라고 되어있는데, all은 make를 실행하면서 옵션으로 target을 직접 명시하지 않았을 때 기본적으로 사용하는 target이다.
여러 target을 빌드할 때 all 오른쪽에 순서대로 나열하면 한번에 처리할 수 있다.
또한 command 에서 make를 실행할 수 있다.
728x90
반응형
'Linux' 카테고리의 다른 글
Mac에서 exec 실행 (zsh: exec format error mac 해결) (1) | 2024.04.03 |
---|