-



Makefile.zip



 

리눅스에서 코드 작성 후 컴파일 하기 힘든 분들을 위한 Makefile

 

예전에 리눅스에서 작업할때 사용하던 Makefile 을 좀 수정해서 배포합니다.

 

첨부된 Makefile 을 c, c++ 소스가 있는 디렉토리에 넣어주시고

 

vi Makefile 로 파일을 엽니다.

 

 



위에 보이는 내용중에

 

CC, DEFLIST, LIBLIST, EXENAME을 각 프로젝트에 맞게 수정하셔서 사용하시면 됩니다.

 

첨부된 Makefile 은 라즈베리파이에서 wiringPi 프로젝트일 경우 EXENAME 만 변경하셔서 사용하시면 됩니다.

 


 

 

 

make 명령 입력시 위와 같이 디렉토리 안에 있는 모든 *.c, *.cpp 파일이 Release 모드로 컴파일 됩니다.

 

make debug 입력시 컴파일에 -g 옵션이 붙어 Debugging 모드로 컴파일 됩니다.

 

make clean 입력시 *.o, *.dbg_o, EXENAME 파일이 삭제 됩니다.

 

 

파일 내용은 뭐.... 조금만 살펴 보셔도 충분히 활용 가능하게끔 해두었습니다.


퍼가실때는 출처를 밝혀 주세요.






2014/08/25


디버깅이 안된다는 분이 계셔서 확인해 본 결과 Object 컴파일 시 -g 옵션이 빠져있네요 ㅠㅠ


다시 수정해서 올려둡니다.

저작자 표시 비영리 변경 금지
신고

'OS > Linux' 카테고리의 다른 글

리눅스 터미널 Ctrl s 입력시 멈춤  (0) 2016.10.12
삼바 설정  (0) 2015.09.01
FTP row CMD 목록  (0) 2014.07.28
CentOS 7 방화벽  (0) 2014.07.14
만능 Makefile  (8) 2014.07.10
Ubuntu 14.04 XRDP - 우분투 14.04 XRDP 설정  (0) 2014.07.02
yum 속도 개선  (0) 2011.10.07
Linux Bonding 구성  (0) 2011.06.01

  • 2014.08.25 16:26

    비밀댓글입니다

    1. BlogIcon Acidpop acidpop 2014.08.25 16:39 신고

      안녕하세요~!

      Makefile 내용 중 다음 내용을 찾아서 바꿔보시겠어요?

      117 .c.dbg_o :
      118 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      119 @$(CC) $(CFLAGS) $< -o $@ $(IPATHS) $(DEFLIST)
      120 .cpp.dbg_o:
      121 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      122 @$(CC) $(CFLAGS) $< -o $@ $(IPATHS) $(DEFLIST)


      위 부분중 -o 앞에 -g 옵션 추가

      117 .c.dbg_o :
      118 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      119 @$(CC) $(CFLAGS) $< -g -o $@ $(IPATHS) $(DEFLIST)
      120 .cpp.dbg_o:
      121 @echo "src > $(ANSI_H_YELLOW)$< ...$(ANSI_NORMAL)"
      122 @$(CC) $(CFLAGS) $< -g -o $@ $(IPATHS) $(DEFLIST)

  • 2014.09.02 20:09

    비밀댓글입니다

    1. BlogIcon Acidpop acidpop 2014.09.03 09:28 신고

      가능합니다.
      각각 SubDir 에 Makefile 을 넣어 놓고
      최상위 디렉토리에 MakeFile 을 작성하면 됩니다.

      가장 손쉬운 방법은 최상위 MakeFile 에서 다음 방식대로 하면 될듯 합니다.

      Sub1, Sub2 디렉토리가 있는 가정하에
      각각 서버 디렉토리에는 만능 Makefile 을 넣어 놓고
      최상위 Makefile 은 다음과 같이 작성 하는 방식입니다.

      SUBDIRS = sub1 sub2


      default:
      @echo Release Mode - make release
      @echo Debug Mode - make debug

      release:
      for list in $(SUBDIRS); do \
      make -C $$list release; \
      done


      debug:
      for list in $(SUBDIRS); do \
      make -C $$list release; \
      done




      위 Makefile 작성시 for 문 사용하는곳에 보면 역슬래시(\) 가 들어가있는데

      복사/붙여넣기 하시면 syntax error: unexpected end of file
      라고 에러가 나옵니다.
      역슬래시 부분 지우셨다가 역슬래시 입력후 바로 엔터
      이런식으로 입력을 해주셔야 합니다.
      정 안되면 for list in $(SUBDIRS); do make -C $$list release; done

      이런식으로 한줄에 써주셔도 됩니다.

  • 2014.09.03 10:34

    비밀댓글입니다

    1. BlogIcon Acidpop acidpop 2014.09.03 10:43 신고

      Main 디렉토리에 있는 Makefile 을 조금 수정하시면 되겠네요.

      release : $(OBJS)
      @echo "$(ANSI_H_BLS_GREEN)$(ANSI_BOLD)Release build start...$(ANSI_NORMAL)"

      이 부분 바로 아래에
      for list in $(SUBDIRS); do make -C $$list release; done

      이 구문만 추가해서 넣으시면 됩니다.

      debug 도 마찬가지구요.

  • 2014.09.03 10:55

    비밀댓글입니다

    1. BlogIcon Acidpop acidpop 2014.09.03 11:15 신고

      해결 되셨다니 다행입니다 ^^

다른 카테고리의 글 목록

OS/Linux 카테고리의 포스트 목록