C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[869] 라이브러리 빌드해서 하나의 폴더에서 관리하기
이경문 [gilgil] 8344 읽음    2009-03-11 00:48
CBuilder가 업그레이드되면서
Debug 및 Release 모듈의 컴파일 차이가 많이 나게 되었습니다.
프로그램을 작성할 때에는 Debug 모듈로 컴파일된 모듈을 사용하다가
배포시에는 Release 모듈을 사용하게 되죠.
실제로 테스트를 해 보면 이 2가지 모듈의 성능 차이가 꽤 많이 납니다.

일반적으로 라이브러리는 제공하게 되면 다음과 같은 폴더를 구성하게 됩니다.

Project (프로젝트 폴더)
   Include (header 파일을 담아 놓는 폴더)
   Lib (lib 파일을 담아 놓는 폴더)

2007 컴파일러에서는 빌드를 하게 되면 기본적으로 Debug 및 Release 폴더가 생기면서
산출물이 다른 폴더에 나오게 됩니다.

Debug로 컴파일되던지, Release로 컴파일되던지 하나의 폴더에 Lib 파일을 생성하고 싶은 경우가 있는데요.
그러한 경우를 위해서 다음과 같은 팁을 사용할 수 있습니다.

Static Library 프로젝트를 만들고 기본적으로 빌드를 합니다.
그리고 Project Options - Build Events - Post Build에 다음과 같은 command를 집어 넣습니다.

if exist $(PROJECTDIR)\Debug\$(PROJECTNAME).lib   copy $(PROJECTDIR)\Debug\$(PROJECTNAME).lib   $(PROJECTDIR)\$(PROJECTNAME)D.lib
if exist $(PROJECTDIR)\Release\$(PROJECTNAME).lib copy $(PROJECTDIR)\Release\$(PROJECTNAME).lib $(PROJECTDIR)\$(PROJECTNAME).lib
이렇게 되면 하나의 폴더에 Debug 라이브러리(VDreamD.lib) 및 Relase 라이브러리(VDream.lib)를 관리할 수 있습니다.

해당 library의 자동 링크를 위해서 다음과 같은 preprocessor를 이용하면 됩니다.

#ifdef _DEBUG
#pragma comment(lib, "VDreamD.lib") // Debug로 컴파일된 거 링크
#else  _DEBUG
#pragma comment(lib, "VDream.lib") // Release로 컴파일된 거 링크
#endif _DEBUG

+ -

관련 글 리스트
869 라이브러리 빌드해서 하나의 폴더에서 관리하기 이경문 8344 2009/03/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.