WDK中配置binplace
来源:互联网 发布:java怎么截取字符串 编辑:程序博客网 时间:2024/05/18 00:14
DDK2003/WDK中附带的binplace.exe用于将编译的文件放到一个统一的目录下,还有一个很有用的功能是符号剥离:能够将包含局部变量的pdb中的符号剥离出去,这样避免通过pdb公开太多的内部细节,比如微软操作系统pdb。
写这篇文章的时候,WDK中已经有更高级的binplace机制,但我实在不想在看似天书的makefile.new中去寻找蛛丝马迹,干脆直接用老的nt中使用binplace的方式引出本文。欢迎探讨。我的构建系统FlexBuild早期也是使用binplace.exe,后来处于更好的集成,在build内部实现了符号剥离和替换功能。
假设WDK的安装目录为:X:\WinDDK\6000\
修改bin\setenv.bat,在第一行后增加:
REM 这个设置编译后的文件输出目录set _NT386TREE=d:\releaseREM 这个设置编译后文件将放到_NT386TREE中那个目录下,如果为retail将为根目录set BINPLACE_PLACEFILE=d:\placefile.txt
在bin\makefile.new搜索:! ELSEIF "$(TARGETTYPE)" == "DRIVER" || \ 找到后,比如:
! ELSEIF "$(TARGETTYPE)" == "DRIVER" || \ "$(TARGETTYPE)" == "MINIPORT"$(TARGET): $(OBJECTS) $(BO_LIB) $(MACHINE_TARGETLIBS) $(CRTLIBS) $(LINKER) @<<$(LINKER_FLAGS: =)$(LINKER_STACKSIZE_DLL)$(ORDER: =)$(SECTION_INFO1)$(SECTION_INFO2)$(LINKER_OPTIDATA)$(DRIVER_SWITCH)/base:$(DRIVERBASE)! IF "$(DRIVERTYPE)" == "VXD"/def:$(DLLDEF)! ELSE$(DRIVER_ALIGN_SWITCH)/subsystem:native,$(SUBSYSTEM_NATVER)/entry:$(DRIVER_ENTRY)$(ENTRY_SUFFIX)!endif/out:$(TARGET)$(HEADEROBJNAME: =)$(**: =)<<$(BUILD_NOKEEP)
在<<$(BUILD_NOKEEP)下一行增加:
binplace -a -x -y -s $(_NT386TREE)\stripped -n $(_NT386TREE)\symbols $(TARGET)
如果想针对其它编译类型,比如exe,相应的在"$(TARGETTYPE)" == "XXX”后面增加binplace工具调用。
创建第一步BINPLACE_PLACEFILE指定的文件,其内容格式:
; 编译文件名,不包含目录 移动到_NT386TREE下那个目录下demo.sys retailDemo1.sys demo1
OK!,想在启动WDK编译一个驱动工程,看看D盘的release目录下有什么:
+ release + stripped 这个为发布的symbols,剥去局部变量的,类似微软操作系统公开的pdb + symbols 这个是包含所有信息的pdb,一般人我不会发给他的 xxx.sys
- WDK中配置binplace
- VC6.0中配置WDK
- Virtual PC环境中调试WDK配置
- 在vs2008中配置wdk环境
- vs2008,WDK快速配置
- 【配置】如何下载WDK
- vs2008+WDK环境配置
- VC6配置WDK
- VS2008配置wdk
- VC6配置WDK
- VC配置WDK环境变量
- vc6.0+wdk配置
- 再谈WDK环境配置
- Visual C++ 6.0配置WDK(VC6.0配置WDK)
- VS2008与WDK 环境配置
- Win7下vs2010+wdk配置
- WDK
- WDK
- Android 软件开发之如何使用Eclipse Debug调试程序详解(十二) .
- javascript 正则表达式
- PCB板蛇形走线的作用
- 谷歌Chrome浏览器,可以很方便地用来当3G手机模拟器
- css 服务器 字体 自定义字体 不常见字体
- WDK中配置binplace
- UIImageView iPhone中用手势实现图片操作
- Myeclipse应用------常用快捷键
- 一个有趣的Java编译问题 ——摘自张孝祥老师的博客
- 嵌入式WEB服务器BOA.conf详解和CGI
- NYOJ 413 月赛的悲剧
- TCP三次握手和四次挥手过程分析
- 如何得到ListControl选中的项 ListControl选中一行
- 网站优化策略