기본 콘텐츠로 건너뛰기

dll 디버그용 릴리즈용 def 만들기

출처 지크님의 블로그 | 지크
원문 http://blog.naver.com/kji780929/110010052760
MFC dll 보시면 MFC42.dll과 MFC42D.dll이 있죠? D가 붙은건 DEBUG 버전의 DLL이예요.
아래는 이렇게 만드는걸 쉽게 하는 방법을 적은것입니다.

오후 1:05 2001-12-13
조경민 MFC DLL Debug/Release 구분해서 하기
============================================================

Test.DLL 프로젝트를 만들면
Test.def라는 파일이 있다.

디버그 버전을 위해
이를 Testd.def로 바꾸고 내부에
; Test.def : Declares the module parameters for the DLL.

LIBRARY      "Testd" <- d를 붙여준다.
DESCRIPTION  'Testd Windows Dynamic Link Library' <- d를 붙여준다.

EXPORTS
    ; Explicit exports can go here
그리고 Project/Setting에서 Debug에 대해 Link탭에서
Debug/Test.dll을
Debug/Testd.dll로 바꾼다.
그리고 아래 def 연결을
/def:test.def를
/def:testd.def로 바꿔준다.

batch Build All을 해서
    Debug/testd.lib
    Debug/testd.dll

    Release/test.lib
    Release/test.dll
를 얻는다.
클라이언트는 위의 파일들을 받아서 프로젝트 폴더에 놓기만 하면된다.

클라이언트에서 쓸 수 있게 배포용 헤더파일(h)에
#ifndef _BRO_FSMONITOR_DEVELOP
// test 클라이언트에서 쓰는 모드
    #ifdef _DEBUG
        #pragma comment(lib,"Testd")
    #else
        #pragma comment(lib,"Test")
    #endif
#endif
를 넣어주면 클라이언트는 그냥 헤더파일만 가져다 쓰면 클라이언트가 debug이면 testd.lib와 testd.dll이 로드되게된다.

댓글