Makefile 왜 쓰는데?

간단한 소스코드 파일 한두개라면 몰라도 컴파일 해야할 코드 갯수가 굉장히 많아지면 gcc 방식으로 하나하나 컴파일 하는것은 시간도 오래걸리고 굉장히 귀찮은 일이된다.
그래서 반복적인 작업을 피하기 위해서 쓰는것이 make 유틸리티이다.

make / Makefile

make는 유틸리티 이름이다.
make 유틸리티는 Makefile이라는 파일의 내용을 읽어서 목표 파일(target)을 만듭니다.

컴파일과정

  1. c파일에서 object 파일 생성하기
    ex) gcc -c -o ft_strlen.o ft_strlen.c
    • -c 옵션은 해당 c파일을 .o(오브젝트)파일로 만들어준다.
    • -o 옵션은 생성될 파일의 이름을 지정해준다.

      지금처럼 -c 옵션을 쓸 때는 -o 옵션으로 output name을 지정해주지 않아도 자동으로 .c의 이름의 .o 파일로 만들어진다. 하지만 실행 파일 생성시 -o 옵션을 넣지 않으면 모든 파일이 a.out 이라는 이름을 가지게 되므로 여러 개의 실행 파일을 생성해야 할 때 -o 옵션을 넣어서 이름을 명시적으로 붙여주는 것이 좋다.

  2. 각 object파일을 link해서 컴파일을 통해 exe 실행파일 생성하기
    gcc -o strlen.exe main.o ft_strlen.o
    Object 파일의 순서들은 상관이 없고 해당 내용처럼 써주면 main.o 와 ft_strlen을 링크해서 strlen.exe 를 생성한다.

  3. 실행하기
    ./strlen.exe 이런식으로 실행을 하면 해당 파일이 실행된다.
    추가로, main 에 argc, argv[] 인자를 실행시 넣고 싶으면, ./strlen.exe [argv[0]][argv[1]] ```c // 2022.09.20 편집중//