vs版本2015
wdk版本7600.16385.1
原因是因爲vs不可能安裝所有系統wdk,同時安裝低版本就配置太麻煩。主要原因是服務器不可能給你安裝個vs讓你編譯的。
vs生成項目後,或者拿別人的vs項目後。進入代碼主目錄。編寫makefile makefile.inc(不是必須文件)。和sources
makefile
!INCLUDE $(NTMAKEENV)\makefile.def
makefile.inc這邊這樣寫的
MSC_WARNING_LEVEL=$(MSC_WARNING_LEVEL) $(COMPILER_WX_SWITCH)
MSC_WARNING_LEVEL= /W1
_LNG=$(LANGUAGE)
_INX=.
STAMP=stampinf -f $@ -a $(_BUILDARCH) -k $(KMDF_VERSION_MAJOR).$(KMDF_VERSION_MINOR)
$(OBJ_PATH)\$(O)\$(INF_NAME).inf: $(_INX)\$(INF_NAME).inx
copy $(_INX)\$(@B).inx $@
$(STAMP)
主要文件
sources
前面是級別主要是四句話:
TARGETNAME=GetPciInfoDriver 驅動生成名稱
TARGETPATH=OBJ
TARGETTYPE=DRIVER 生成的是驅動
SOURCES=entry.c 所有c文件
!if $(FREEBUILD)
MSC_WARNING_LEVEL=/W1
!else
MSC_WARNING_LEVEL=/W3
!endif
TARGETNAME=GetPciInfoDriver
TARGETPATH=OBJ
TARGETTYPE=DRIVER
SOURCES=entry.c
然後打開編譯環境去SOURCES目錄輸入build
然而發現上百 或者上千的錯誤(這裏vs是能過的)
主要原因是因爲老版本的編譯器。函數的變量聲名等必須要在最前面例如:
報錯:
test(){
a();
int i=0;
}
修改:
test(){
int i;
a();
i=0;
}
然後還有一個問題是結構體聲名時沒有初始化問題。要聲明就後面加上={0};初始化,我編譯時這樣就行了。
vs配置wdk7600參考:
https://www.cnblogs.com/iBinary/p/8290595.html