안녕하세요..
하나의 make파일로 서브 디렉토리에 있는 소스파일도 컴파일이 가능한지여.. 가능하다면 방법을 알고 싶습니다.
또 만약 위에 질문이 가능하지만 효율적이지 않다면 더 좋은 방법은 어떤것이 있는지 궁금합니다.
그럼 고수님의 조언 부탁드립니다...^^
LD = gcc CC = gcc OBJS = subdir1/src1.o subdir1/src2.o .... $(target): $(OBJS) $(LD) -o $@ $(OBJS) .c.o: $(CC) $(CFLAGS) -o $@ $*.c
요렇게 하시면 됩니다. 근데, 일일이 디렉토리를 다 명시해야 하는데 귀찮지 않을까요? 차라리 모듈별로 관리하시는 디렉토리라면 Makefile을 따로 만드시는게 더 나을텐데요. 그리고, .o파일이 소스 디렉토리에 남아있으면 지저분하기 때문에 build 디렉토리를 따로 지정하시는 게 어떨까요?
autoconf와 automake를 사용하시면 많이 편해지실수 있습니다.
또다른 구렁텅이로 빠질수도 있지만 ..
man make -C 옵션을 참고하세요.
이렇게 서브에 Makefile을 따로 만들기 귀찮으시면... 그냥 컴파일 할때... full-path를 주면은 바로 서브에 있는것도 컴파일 가능합니다.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h> do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
[code:1]LD = gccCC = gccOBJS = subdi
요렇게 하시면 됩니다.
근데, 일일이 디렉토리를 다 명시해야 하는데 귀찮지 않을까요?
차라리 모듈별로 관리하시는 디렉토리라면 Makefile을 따로 만드시는게 더 나을텐데요. 그리고, .o파일이 소스 디렉토리에 남아있으면 지저분하기 때문에 build 디렉토리를 따로 지정하시는 게 어떨까요?
autoconf를 사용하세요.
autoconf와 automake를 사용하시면 많이 편해지실수 있습니다.
또다른 구렁텅이로 빠질수도 있지만 ..
man make-C 옵션을 참고하세요.이렇게 서브에 Makef
man make
-C 옵션을 참고하세요.
이렇게 서브에 Makefile을 따로 만들기 귀찮으시면...
그냥 컴파일 할때...
full-path를 주면은 바로 서브에 있는것도 컴파일 가능합니다.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
댓글 달기