음.. 정확히 make이 어떻게해서 적용되지 않았는지는 모르겠지만 간단히 순서를 적어보겠습니다.
예제로 있는것과 같이 처음 부분에 아랫쪽 컴파일과 링크 룰에서 사용할 내용들을 정의할건 미리 정의해 둡니다.
그리고 아래를 시작으로 시작합니다.
# the first rule will be made by default
all: poem.exe
위 내용다음에 각 소스들을 먼저 컴파일 해서 obj를 만듭니다.
물론 리소스도 있으면 해줍니다.(물론 라이브러리도 있으면 여기서 같이..)
리소스와 obj는 기본적으로 개별로 컴파일되어 바이너리가 만들어지기 때문에 별문제 없을것입니다.
이러한 과정이 끝난후에
링크를 할때는 위의 모든 내용이 끝났을때 (바이너리가 생성되었을때) 마지막으로 처리해 줍니다.
기본적으로 이러한 순서입니다.
참고할 자료로 보기 쉬운게 있었는데... --;
몇년전에 저도 보려고 어딘가 잘 보관해 두었을거라 생각하지만, 다시 찾으려니 잘 안보이네요.
혹시나 찾게되면 리소스나 자료실쪽에 참고 자료로 올려둘 생각입니다.
(리눅스 관련 사이트에서 사용하는 make과 특별히 사용법이 다르지 않다고 보시면 됩니다.)
혹시 make이 제대로 적용 안된다면 만들었던 makefile을 올려주시면 여기서도 한번 해보겠습니다.
makepark 님이 쓰신 글 :
: makefile에 관한 개념이 정확히 잡히지 않아서 고생을 하고 있습니다,,,
: 제가 질문할 요지는...
: 1.make와 makefile의 관계...제가 알기로는 make 유틸리티가 makedile을 읽어서
: 규모가 있는 프로그램도 쉽게 컴파일하고 링크해서 원하는 결과를 얻기위한 과정을 규정해 놓은
: 것..으로 알고 있습니다...makefile의 내용을 어떤 식으로 어떤 순서에 의해서 메이크 유틸리티가
: 진행을 하는지(볼랜도 C++의 make유틸리티)지 알고 싶습니다..아니면 책이나 사이트등 참고할수 있는
: 자료라도..
: 2.제가 지금 test라는 폴더에다 소스파일을 다 넣어놓고 makefile을 작성을 했습니다...이떄 makefile안에는
: bc의 경로를 적어주고 기타 등등 makefile문법에 맞게 적어 넣었습니다..그리고 에뮬레이터상에서
: make라고 치면
:
: C:\소스디렉토리>make
: MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
: Fatal : unable to open makefile
: 이런 메세지가 뜹니다....
:
: 질문 자체가 쓰고 나니 제가 원했던것과는 상이한 면이 있네요..
: 답변좀 부탁드립니다.....
:
|