2007년 12월 04일
Visual Studio 2005 에서 DDK 빌드하기
Visual Studio 2005 에서 ddk 빌드하기
몇몇 사이트에서 Visual Studio 6.0 또는 2003 에서 하는 방법을 설명했는데
2005 도 다르지 않다
다르다면 여기서는 비스타 OS 에서 WDK 6001 을 설치했다는 것 뿐..
자세한 설명을 볼려면 http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm 을 방문하면 된다.
[열기]
자 그럼 설정하는 방법을 알아보자
1. ddkbuild.bat 파일을 osronline 사이트에서 다운로드 받는다.
현재 내 ddkbuild 버전은 3.13..
2. ddkbuild.bat 을 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE 폴더로 복사한다.
3. ddkbuild.bat 를 수정한다.
set quiet=0
if "%1" NEQ "-quiet" goto noquiet
set quiet=1
shift
:noquiet
::< add..
set WNETBASE=C:\WINDDK\6001 <-- -WNET 일때 반영
set WLHBASE=C:\WINDDK\6001 <-- -
set USE_LIBCNTPR=1 <-- wdk 버전에서 float , double 캐스팅시 에러방지
::>
4. VS2005 시작해서 VC++ -> General -> Makefile Project 를 생성한다.
Build Command lline = ddkbuild -WNET(or WLH ) checked .
ReBuild Command lline = ddkbuild -WNET(or WLH) checked . -ceZ
입력 후 Finish 버튼 눌러서 완료한다.
5. TestDriver 라는 프로젝트를 만들었다면 ~~~\TestDriver\TestDriver 폴더형태로 생성될것이다.
Sources Makefile 및 소스파일을 최종폴더에 복사하고 VS2005 에 추가한다. (걍 드래그 추천)
6 짠 Build 해보라... 잘 될것이다.
wdk 내의 src 파일을 가지고 테스트해보면 별 에러 없이 잘 될 것이다.
그러나 2000ddk 나 xpddk 에서 컴파일 했던 프로젝트들은 에러가 쪼매 뜰것이다.
에러가 많이 뜨면, 먼저 wdk 소스파일내의 Sources 파일을 이용하여 프로젝트의 Sources 파일을 수정하면 된다.
2000ddk 와 xpddk 의 Sources 파일과는 조금 다르다는 것을 알 수 있을 것이다.
기타1.
내 경우엔 unresolved external symbol __ftol2_sse referenced in function 에러가 나서 고생 좀 했다.
분명히 libcnptr.lib 링크 정확하게 맞았는데 왜 에러 뜨는지 이해가 안되었다..
Microsoft NewsGroup 검색해보니깐 double , float 캐스팅 버그라고 그러는데 좀더 알아봐야 할것 같다.
해결책은 wlh 폴더내의 libcnptr.lib 파일을 TargetLib 링크를 걸면된다.
Sources 파일 내의 $(DDK_LIB_PATH)는 basedir 의 wnet 폴더의 Lib 폴더를 이용하는 것이므로
wlh 폴더내의 libcnptr.lib 를 절대경로로 수정 하면 된다.
기타2.
error LNK2026: module unsafe for SAFESEH image 이런 에러 났을 때는
Sources 파일 또는 ddkbuild.bat 에 NO_SAFESEH = 1 로 설정해 주면 된다.
사족.
배포시에는 ddkbuild 보다 Build Command 창 에서 build 하는 것이 낫지 않을까...
http://blog.naver.com/ikoguryo?Redirect=Log&logNo=10022487837
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
# by | 2007/12/04 15:59 | └Windows Driver | 트랙백 | 덧글(0)








☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]