6th October 2007

VS2005 中 DDK(2003 SP1) 编译环境的设置

posted in NT Kernel Study |

有很多工具可以自动构建VS2005下的DDK编译环境。本着求实上进的精神,我还是自己照着一个sample 工程自己看了一下一些具体的设置。 主要就是设置一些DDK的头文件、library和一些诸如Entry Point/Base Address/SubSystem/Target Machine/Optimization方面的设置。 下面的设置是从一个win32 console工程的设置出发需要改动的地方。其中release版本中是一些区别于Debug版本的设置。

[Debug]
General/Output Directory:              $(ConfigurationName)

C/C++
General/Additional Include Directories:  \WINDDK\3790.1830\inc\crt;\WINDDK\3790.1830\inc\ddk\wxp;\WINDDK\3790.1830\inc\wxp;\WINDDK\3790.1830\inc\ddk\wdm\wxp;\WINDDK\3790.1830\src\network\inc;\WINDDK\3790.1830\INC\IFS\wxp
General/Debug Information Format:
Optimization/Enable Intrinsic Functions:
Preprocessor/Proprocessor Definitions:   _DLL=1;_X86_=1;i386=1;STD_CALL;CONDITION_HANDLING=1;NT_INST=0;
WIN32=100;_NT1X_=100;WINNT=1;_WIN32_WINNT=0×0400;WIN32_LEAN_AND_MEAN=1;DEVL=1;DBG=1;FPO=0
Code Generation/Enable String Pooling: Yes (/GF)
Code Generation/Enable C++ Exceptions: No
Code Generation/Basic Runtime Checks:  Default
Code Generation/Runtime Library:   Multi-threaded (/MT)
Code Generation/Buffer Security Check:     No (/GS-)
Code Generation/Enable Function-Level linking:     Yes (/Gy)
Precompiled Headers/Precompiled Header File:   .\$(ConfigurationName)/$(ProjectName).pch
Output Files/ASM List Location:  .\$(ConfigurationName)/
Output Files/Object File Name:  .\$(ConfigurationName)/
Output Files/Program Database File Name:  .\$(ConfigurationName)\$(ProjectName).pdb
Advanced/Call Convention:   __stdcall (/Gz)
Advanced/Compiled As:      Default
Advancde/Force Includes:     warning.h
Command Line(???):   /Zel -cbstring /QIfdiv- /QIf     

Linker
General/Output File:    $(OutDir)\$(ProjectName).sys
General/Enable Incremental Linking:     No (/INCREMENTAL:NO)
General/Additional Library Directories:     \WINDDK\3790.1830\lib\wxp\i386;\WINDDK\3790.1830\lib\wxp
Input/Additional Dependency:         ntoskrnl.lib hal.lib wmilib.lib ndis.lib $(NOINHERIT)
Input/Ignore All Default Libraries:    Yes (/NODEFAULTLIB)
/*Input/Module Definition File:          .\$(ProjectName).def*/
Debugging/Generate Program Database File:     .\$(ConfigurationName)/$(ProjectName).pdb
System/SubSystem:                 Native (/SUBSYSTEM:NATIVE)
System/Stack Reserve Size:        262144
System/Stack Commit  Size:        4096
Optimization/References:          Eliminate Unreferenced Data (/OPT:REF)
Optimization/Enable COMDAT Folding:    Remove Redundant COMDATs (/OPT:ICF)
Advanced/Entry Point:                  DriverEntry
Advanced/Set Checksum:                 Yes (/RELEASE)
Advanced/Base Address:                 0×10000
Advanced/Merge Sections:               .rdata=.text
Advanced/Target Machine:               MachineX86 (/MACHINE:X86)   / Not Set
Command Line:                          /ignore:4010,4037,4039,4065,4070,4078,4087,4089,4221,4210 /driver

[Release]
C/C++
General/Debug Information Format:     Disabled
Optimization/Optimization:   Full Optimization (/Ox)
Favor Size or Speed:         Favor Small Code (/Os)

Linker
Debugging/Generate Map File:       Yes (/MAP)
Debugging/Map File Name:           $(Outdir)/$(ProjectName).map
Debugging/Map Exports:             Yes (/MAPINFO:EXPORTS)

Leave a Reply