用WDK命令行CMD编译一个驱动程序时,关于环境变量的记录

16 篇文章 0 订阅

当使用WDK(我这里版本WDK 7600.16385.1)命令行编译一个驱动程序时,进入到当前驱动所在的文件夹目录下,一般都有一个Sources文件,内容一般是:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. TARGETNAME=UsbKbd  
  2. TARGETTYPE=DRIVER  
  3. DRIVERTYPE=WDM  
  4. TARGETPATH=OBJ  
  5. #TARGETLIBS=C:\98DDK\LIB\I386\FREE\Usbd.Lib  
  6. TARGETLIBS=$(DDK_LIB_PATH)\Usbd.Lib  
  7.   
  8. INCLUDES=$(BASEDIR)\inc;  
  9.   
  10. SOURCES=    Init.cpp \  
  11.             Dispatch.cpp \  
  12.             Pnp.cpp \  
  13.             DeviceIo.cpp \  
  14.             Usb.cpp \  
  15.             DebugPrint.c \  
  16. #           UsbKbd.rc  
  17.   
  18. NTTARGETFILES=PostBuildSteps  

例如上面的Sources 例子 里(是编译UsbKbd驱动),“# ”是注释符,“DDK_LIB_PATH”等环境变量定义在什么地方呢?

开启一个WDK命令行编译环境,执行下面操作:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <span style="font-size:18px;">C:\WinDDK\7600.16385.1>set >c:\1.txt</span>  
上面操作的意思是,将当前命令行cmd下所有的环境变量输出到c:\1.txt内,打开该文件,如下:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 386=1  
  2. ALLUSERSPROFILE=C:\ProgramData  
  3. APPDATA=C:\Users\Administrator\AppData\Roaming  
  4. asl.log=Destination=file  
  5. ATL_INC_PATH=C:\WinDDK\7600.16385.1\inc  
  6. ATL_INC_ROOT=C:\WinDDK\7600.16385.1\inc  
  7. ATL_LIB_PATH=C:\WinDDK\7600.16385.1\lib\atl\*  
  8. BASEDIR=C:\WinDDK\7600.16385.1  
  9. BUILD_ALLOW_COMPILER_WARNINGS=1  
  10. BUILD_ALT_DIR=chk_wxp_x86  
  11. BUILD_DEFAULT=-ei -nmake -i -nosqm  
  12. BUILD_DEFAULT_TARGETS=-386  
  13. BUILD_MAKE_PROGRAM=nmake.exe  
  14. BUILD_MULTIPROCESSOR=1  
  15. BUILD_OACR=1  
  16. COFFBASE_TXT_FILE=C:\WinDDK\7600.16385.1\bin\coffbase.txt  
  17. CommonProgramFiles=C:\Program Files\Common Files  
  18. CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files  
  19. CommonProgramW6432=C:\Program Files\Common Files  
  20. COMPUTERNAME=XT1-20140726YGA  
  21. ComSpec=C:\Windows\system32\cmd.exe  
  22. CPU=AMD64  
  23. CRT_INC_PATH=C:\WinDDK\7600.16385.1\inc\crt  
  24. CRT_LIB_PATH=C:\WinDDK\7600.16385.1\lib\crt\*  
  25. DDKBUILDENV=chk  
  26. DDK_INC_PATH=C:\WinDDK\7600.16385.1\inc\ddk  
  27. DDK_LIB_DEST=C:\WinDDK\7600.16385.1\lib\wxp  
  28. DDK_LIB_PATH=C:\WinDDK\7600.16385.1\lib\wxp\*  
  29. DDK_TARGET_OS=WinXP  
  30. DEPRECATE_DDK_FUNCTIONS=1  
  31. DEVMGR_SHOW_DETAILS=1  
  32. DRIVER_INC_PATH=C:\WinDDK\7600.16385.1\inc\ddk  
  33. FP_NO_HOST_CHECK=NO  
  34. HALKIT_INC_PATH=C:\WinDDK\7600.16385.1\inc\ddk  
  35. HALKIT_LIB_PATH=C:\WinDDK\7600.16385.1\lib\wxp\*  
  36. HOMEDRIVE=C:  
  37. HOMEPATH=\Users\Administrator  
  38. IFSKIT_INC_PATH=C:\WinDDK\7600.16385.1\inc\ddk  
  39. IFSKIT_LIB_DEST=C:\WinDDK\7600.16385.1\lib\wxp  
  40. IFSKIT_LIB_PATH=C:\WinDDK\7600.16385.1\lib\wxp\*  
  41. Include=C:\WinDDK\7600.16385.1\inc\api  
  42. KMDF_INC_PATH=C:\WinDDK\7600.16385.1\inc\wdf\kmdf  
  43. KMDF_LIB_PATH=C:\WinDDK\7600.16385.1\lib\wdf\kmdf\*  
  44. LANGUAGE_NEUTRAL=0  
  45. Lib=C:\WinDDK\7600.16385.1\lib  
  46. LINK_LIB_IGNORE=4198  
  47. LOCALAPPDATA=C:\Users\Administrator\AppData\Local  
  48. LOGONSERVER=\\XT1-20140726YGA  
  49. MFC_INC_PATH=C:\WinDDK\7600.16385.1\inc\mfc42  
  50. MFC_LIB_PATH=C:\WinDDK\7600.16385.1\lib\mfc\*  
  51. MSC_OPTIMIZATION=/Od /Oi   
  52. NEW_CRTS=1  
  53. NO_BINPLACE=TRUE  
  54. NO_BROWSER_FILE=TRUE  
  55. NTDBGFILES=1  
  56. NTDEBUG=ntsd  
  57. NTDEBUGTYPE=both  
  58. NTMAKEENV=C:\WinDDK\7600.16385.1\bin  
  59. NUMBER_OF_PROCESSORS=4  
  60. OAK_INC_PATH=C:\WinDDK\7600.16385.1\inc\api  
  61. OS=Windows_NT  
  62. Path=C:\WinDDK\7600.16385.1\bin\amd64;C:\WinDDK\7600.16385.1\tools\sdv\bin;C:\WinDDK\7600.16385.1\bin\x86\oacr;C:\WinDDK\7600.16385.1\tools\pfd\bin\bin\x86;C:\WinDDK\7600.16385.1\tools\tracing\i386;C:\WinDDK\7600.16385.1\bin\x86;C:\WinDDK\7600.16385.1\bin\x86\x86;C:\WinDDK\7600.16385.1\bin\SelfSign;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\  
  63. PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC  
  64. PREFAST_VALID_IMPLIES_NOTNULL=1  
  65. PROCESSOR_ARCHITECTURE=AMD64  
  66. PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel  
  67. PROCESSOR_LEVEL=6  
  68. PROCESSOR_REVISION=3a09  
  69. ProgramData=C:\ProgramData  
  70. ProgramFiles=C:\Program Files  
  71. ProgramFiles(x86)=C:\Program Files (x86)  
  72. ProgramW6432=C:\Program Files  
  73. PROJECT_ROOT=C:\WinDDK\7600.16385.1\src  
  74. PROMPT=$P$G  
  75. PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\  
  76. PUBLIC=C:\Users\Public  
  77. PUBLIC_ROOT=C:\WinDDK\7600.16385.1  
  78. PUBLISH_CMD=@echo Publish not available...  
  79. RAZZLETOOLPATH=C:\WinDDK\7600.16385.1\Bin  
  80. RCNOFONTMAP=1  
  81. SDK_INC_PATH=C:\WinDDK\7600.16385.1\inc\api  
  82. SDK_LIB_DEST=C:\WinDDK\7600.16385.1\lib\wxp  
  83. SDK_LIB_PATH=C:\WinDDK\7600.16385.1\lib\wxp\*  
  84. SDV=C:\WinDDK\7600.16385.1\tools\sdv  
  85. separate_object_root=FALSE  
  86. SESSIONNAME=Console  
  87. SUBSTITUTE_386_CC=C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrcl  
  88. SUBSTITUTE_AMD64_CC=C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrcl  
  89. SUBSTITUTE_CS_COMPILER_NAME=C:\WinDDK\7600.16385.1\BIN\x86\oacr\oacrcsc /nologo  
  90. SUBSTITUTE_LINK=C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrlink  
  91. SystemDrive=C:  
  92. SystemRoot=C:\Windows  
  93. TEMP=C:\Users\ADMINI~1\AppData\Local\Temp  
  94. TMP=C:\Users\ADMINI~1\AppData\Local\Temp  
  95. UMDF_INC_PATH=C:\WinDDK\7600.16385.1\inc\wdf\umdf  
  96. USERDOMAIN=XT1-20140726YGA  
  97. USERNAME=WinDDK  
  98. USERPROFILE=C:\Users\Administrator  
  99. USE_OBJECT_ROOT=1  
  100. VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\  
  101. VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\  
  102. WDM_INC_PATH=C:\WinDDK\7600.16385.1\inc\ddk  
  103. windir=C:\Windows  
  104. windows_tracing_flags=3  
  105. windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log  
  106. WPP_CONFIG_PATH=C:\WinDDK\7600.16385.1\bin\wppconfig  
  107. _BUILDARCH=x86  
  108. _BuildType=chk  
  109. _DFX_INSTALL_UNSIGNED_DRIVER=1  
  110. _IA32bit=true  
  111. _NTDRIVE=C:  
  112. _NTROOT=\WinDDK\7600.16385.1  
  113. _NT_TARGET_VERSION=0x501  
  114. _OACR_ERROR_LEVEL=0  
  115. _RunOacr=TRUE  

在这里,就能找到 “DDK_LIB_PATH”等环境变量定义值了。(如上我开启的是WinXP的Check版本的编译环境)


举一反三:

①  启动一个默认的CMD命令行环境,执行“set >c:\1.txt”后,再开启VS2012的命令行提示编译环境,执行“set >c:\2.txt”,用文件比较工具比较两个文件的不同。这两个文件的不同,就是VS2012命令行编译环境做的特殊设置。


② 用同样的方式,可以查看WinCE5.0、Tornado2.2命令行编译设置的不同;


② 用同样的方式,查看Visual Studio之间做的设置环境变量区别:VC++6.0的设置环境变量位置一般在“C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin”下,为“VCVARS32.BAT”;VS2005,VS2008,VS2012分别在菜单下有命令行编译提示工具设置;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值