windows ce 的构建系统

19
Windows CE Windows CE 的的的的的的的的

Upload: faolan

Post on 16-Jan-2016

99 views

Category:

Documents


0 download

DESCRIPTION

Windows CE 的构建系统. Build 的几个阶段. 当你在 IDE 的 Biuld 菜单下选择 Build Platform 命令时,系统创建平台依次经历了以下4个过程 :. Sysgen 阶段 Build 阶段 Release Copy 阶段 Make Image 阶段. Sysgen 阶段任务. 主要功能是根据用户设置的一些组件环境变量,生成相应的头文件及可执行文件,供最终的 Windows CE 运行时映像打包时使用。 . System Generation. Complete header and source code files. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows CE 的构建系统

Windows CEWindows CE 的构建系统的构建系统

Page 2: Windows CE 的构建系统

BuildBuild 的几个阶段的几个阶段

Sysgen Sysgen 阶段阶段 Build Build 阶段阶段 Release CopyRelease Copy 阶段阶段 Make ImageMake Image 阶段阶段

当你在 IDE 的 Biuld菜单下选择 Build Platform 命令时,系统创建平台依次经历了以下 4个过程 :

Page 3: Windows CE 的构建系统

Sysgen Sysgen 阶段任务阶段任务 主要功能是根据用户设置的一些组件环境变量,生成相主要功能是根据用户设置的一些组件环境变量,生成相

应的头文件及可执行文件,供最终的应的头文件及可执行文件,供最终的 Windows CEWindows CE 运行运行时映像打包时使用。 时映像打包时使用。 

Page 4: Windows CE 的构建系统

System GenerationSystem Generation

Complete header and source code

files

Complete system libraries

Module definitions (.def)

Cesysgen.bat

System-specific

header files

Linked libraries

Specific .def files

SYSGEN.BAT

Page 5: Windows CE 的构建系统

Build Build 阶段任务阶段任务 所有的用户属性,包括所有的用户属性,包括 PBPB 工程文件工程文件

(.pbp) (.pbp) ,, dirsdirs 文件,源文件, 文件,源文件, makefiles makefiles (.mak) (.mak) 被编译和创建被编译和创建

Page 6: Windows CE 的构建系统

原码结构原码结构 DIRSDIRS

SOURCESSOURCES

MakeFileMakeFile makefile.defmakefile.def

Page 7: Windows CE 的构建系统

DIRS DIRS 文件文件DIRSDIRS

类似工作空间类似工作空间““ Workspace”Workspace” 中包含的工程中包含的工程““ projects”projects” 列表列表 文本文件列出了包含其它文本文件列出了包含其它 DIRS or SOURCESDIRS or SOURCES 文件的目录列表文件的目录列表 BUILD.EXE BUILD.EXE 通过读通过读 DIRSDIRS 文件确定文件确定 buildbuild 的内容的内容 例如例如 ::

DIRS=\

Eboot \

Drivers

Page 8: Windows CE 的构建系统

SOURCESSOURCESSOURCESSOURCES 文件包含要编译的源代码文件列表等一系列宏文件包含要编译的源代码文件列表等一系列宏SOURCESSOURCES

工程的源文件列表工程的源文件列表TARGETNAMETARGETNAME

最终生成的最终生成的 exe,dllexe,dll 或或 liblib 文件的文件名文件的文件名 (( 非扩展非扩展 ))TARGETTYPETARGETTYPE

PROGRAM – (.EXE) ApplicationPROGRAM – (.EXE) Application DYNLINK – (.DLL) Dynamic Link LibraryDYNLINK – (.DLL) Dynamic Link Library LIBRARY – (.LIB) Static libraryLIBRARY – (.LIB) Static library

Page 9: Windows CE 的构建系统

SOURCESSOURCES 与与 MakefileMakefile 的关的关系系

MAKEFILE.INC

SOURCES

MAKEFILE.DEFLocal

project folder

%_MAKEENVROOT%

Page 10: Windows CE 的构建系统

Release Copy Release Copy 阶段任务阶段任务 拷贝所有用户生成拷贝所有用户生成 OSOS 镜像所需的文件到镜像所需的文件到

releaserelease 目录下,在目录下,在 SysgenSysgen 阶段生成的模块和阶段生成的模块和文件首先被拷贝,接着是文件首先被拷贝,接着是 BuildBuild 阶段生成的模块阶段生成的模块和文件和文件 . .

Page 11: Windows CE 的构建系统

Make Image Make Image 阶段任务阶段任务 RreleaseRrelease 目录中的文件被整合的二进制镜像文件目录中的文件被整合的二进制镜像文件

Nk.binNk.bin 中中 .. 这一阶段对应这一阶段对应 BuildBuild 菜单下的菜单下的 Make ImageMake Image 命命

令令

Page 12: Windows CE 的构建系统

Build Build 过程过程COMMON

DATASYNCDCOM

DIRECTXIE

RDPSCRIPT

SERVERSWCEAPPSFE

WCESHELLFE…

..\cesysgen\ddk

..\cesysgen\oak

..\cesysgen\sdk\target, \files

Step 1. System Generation

Step 2. Build

Step 3. Release Copy

Step 4. Making an Image

NK.BIN

..\platform\..\target, \files

%_FLATRELEASEDIR%

Page 13: Windows CE 的构建系统

Build Build 结果结果 nk.bin : nk.bin :

Windows CE Windows CE 二进制镜像数据格式二进制镜像数据格式 运行时必须首先装载到内存中运行时必须首先装载到内存中 .. 由数据段和代码段组成由数据段和代码段组成

nk.nb0 : nk.nb0 : 二进制数据文件格式 二进制数据文件格式 能够被转载到能够被转载到 FlashFlash 中中 可以以 可以以 XIPXIP 模式运行模式运行

Page 14: Windows CE 的构建系统

如何解决 如何解决 Build Build 中的错误中的错误1.1. 查看 查看 OutputOutput 窗口窗口

No enough hard disk spaceNo enough hard disk space Compile & link errorCompile & link error

2.2. 检查检查 WINCE WINCE 根目录下的 根目录下的 Build.log & Build.log & Build.errBuild.err & Build.wrn& Build.wrn 文件 文件 详细的输出信息详细的输出信息

Page 15: Windows CE 的构建系统

解释解释 Build ErrorsBuild ErrorsSysgenSysgen 阶段的错误阶段的错误

Caused by missing files, missing configuration of the Caused by missing files, missing configuration of the operating system features, and applications built operating system features, and applications built during the Sysgen phaseduring the Sysgen phase

Module buildModule build 阶段的错误阶段的错误 Compilation errors or unresolved link errorsCompilation errors or unresolved link errors

Building the release directoryBuilding the release directory 阶段的错误阶段的错误 File copy errorsFile copy errors

Making an imageMaking an image 阶段的错误阶段的错误 Romimage.exe failed in CE.BIBRomimage.exe failed in CE.BIB Romimage.exe failed in reginit.iniRomimage.exe failed in reginit.ini Warning: Image exceedsWarning: Image exceeds

Page 16: Windows CE 的构建系统

有用的命令行工具有用的命令行工具 Wince.batWince.bat Blddemo.batBlddemo.bat Cebuild.batCebuild.bat Build.exeBuild.exe Sysgen.batSysgen.bat Buildrel.batBuildrel.bat Makeimg.exeMakeimg.exe

Page 17: Windows CE 的构建系统

Wince.batWince.bat

用来创建命令行构建环境。它会设置一些用来创建命令行构建环境。它会设置一些新的环境变量,这些环境变量会指向新的环境变量,这些环境变量会指向Windows CEWindows CE 源代码树的某些目录,并且源代码树的某些目录,并且在以后的步骤中被构建系统使用在以后的步骤中被构建系统使用

通过通过 33 个输入参数为宿主机准备开发环境个输入参数为宿主机准备开发环境 %_TGTCPU% %_TGTCPU% %_TGTPROJ% %_TGTPROJ% %_TGTPLAT% %_TGTPLAT%

例例 : : wince x86 MYPROJ CEPCwince x86 MYPROJ CEPC

Page 18: Windows CE 的构建系统

BldDemo.bat BldDemo.bat

用来用来 build build 和生成 和生成 OS OS 镜像镜像 它调用它调用 33 个工具个工具 ::

Cebuild.batCebuild.bat: : 负责执行整个负责执行整个 SysgenSysgen 和和 BuildBuild过程,包括编译源代码和链接库文件过程,包括编译源代码和链接库文件

Buildrel.batBuildrel.bat:: 负责执行负责执行 Release CopyRelease Copy 过程,过程,把生成的文件复制到把生成的文件复制到 _FLATRELEASEDIR_FLATRELEASEDIR 目目录 录

Makeimg.exeMakeimg.exe ::负责把负责把 _ _ FLATRELEASEDIRFLATRELEASEDIR 目录下的文件按照目录下的文件按照 BIBBIB文件的指示打包成最终的文件的指示打包成最终的 binbin ,产生,产生 OSOS 镜像镜像

Page 19: Windows CE 的构建系统

Build.exeBuild.exe

用来构建、创建各种项目用来构建、创建各种项目 DIRSDIRS 文件定义目录结构文件定义目录结构

自动监测源文件和头文件的依赖关系自动监测源文件和头文件的依赖关系Windows CE BuildWindows CE Build 过程的核心过程的核心调用调用 NMAKE.EXE NMAKE.EXE 做真正的做真正的 buildbuildDIRSDIRS 和和 SOURCES SOURCES 决定决定 buildbuild 的内容的内容