본문 바로가기

프로그래밍 오류해결

3D Game Programing 오류

d3dx9dt.lib를 찾을수 없을경우. 아래와 같은 오류가 뜬다


오류의 해결법을 검색하던중 아래와 같은 글을 발견했다.


Direct3D FAQ 를 보면 아래와 같은 내용이 나옵니다.

d3d9.lib - stub library for Direct 3D, link is with d3d9.dll at runtime, debug level controlled by Control Panel
d3dx9.lib - the release library for D3DX, full code no dll
d3dx9d.lib - the stub library for D3DX, link is with the (SDK only) d3dx9d.dll at run time
d3dx9dt.lib - debug library for D3DX, full code no dll - useful if giving to someone without SDK installed for testing.

뭐 대충 디버그용/릴리즈용 DLL 없이되는 버전 등등 이래저래 나오죠,
그중 d3dx9dt.lib 는 디버그 테스용으로 SDK 없이 되게끔 한다고 나옵니다.

d3dx9dt.lib 의 용도는 알아봤는데 이상하게도 책 샘플을 보면 d3dx9dt.lib 가 링크걸려 있고 컴파일 하면
해당 lib 파일을 찾을 수 없다고 나옵니다. (최근 SDK 설치했을때만)

그럼 최근 DXSDK 문서를 보면 다음과 같이 나옵니다.
The statically-linked debug library (D3DX9dt.lib) has been removed; use D3DX9d.lib instead Other
D3DX9dt.lib 는 없어졌다고 하므로 그냥 D3DX9d.lib 를 사용하면 되겠습니다.

책에 있는 샘플 컴파일 하다 의문을 가지실 분들 있으실듯 하여 올립니다.

내용 출처 : 게임코디
http://www.gamecodi.com/board/zboard.php?id=GAMECODI_Tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=22


결국 d3dx9dt.lib는 더이상 사용하지 않는 라이버러리 이므로, 프로젝트 메뉴에서 -> 속성탭을 클릭한후 -> 좌측 트리에 나오는 구성속성 -> 링커 -> 일반으로 들어가면 우측 상단에 추가종속성 이라는 항목이 있다.

이곳에 보면, 링크 과정을 거칠때 읽어야할 lib(라이버러리)파일들이 명시되어 있는데, 샘플코드중에 이곳에 d3dx9dt.lib가 포함되어 있으면 위와 같은 오류가 난다. 이것을 삭제해주면 해결되는 문제다.