大家都知道wince下sysgen的IDE用法。在第一次建立使用pb创建平台的工程时要sysgen and build,以编译并生成系统的所有库,资源等文件,再根据你所创建的工程里包括的组件以及上面已经编译好的库和资源文件生成该工程所需的.dll等你定制的系统所需的文件。在每次填加新的组件的时候要sysgen。
最近,用到了一些private下的代码,修改了一点东西。在pb里找到对应的工程目录直接build(clean before building)。这个时候一般都会生成一个.lib或者别的文件到public/xxx/oak/lib/yyy/zzz。(其中xxx为ms分的大的模块类型目录,如common,shell等;yyy为cpu架构类型,如x86,armv4i等;zzz为编译的类型,debug或者retail)。
都是老生常谈了,不过接下的事情,可以了解一下。照着上面的做了,由于我们只生成了一个.lib文件,而我们定制的OS是并不能直接用它,一般情况下需要sysgen一下。最初就是用PB中的sysgen项,太耗时,只修改了一个组件的东西,却要sysgen整个工程的组件。在PB上是没法整了,只有命令行工具了。
sysgen [-h] [-b] [-c] [-p Tree][NmakeTarget] [NmakeTarget] ...
Parameters
-h
Displays a Help screen.
-b
Used for internal calls only.
-c
Runs Nmake.exe with the -clean parameter.
-p Tree
Runs Sysgen.bat in the specified project. If no project is specified, Sysgen.bat runs in the Common project, which builds core Windows CE functionality.
NmakeTarget
Specifies a specific module to build. If NmakeTarget is not specified, Nmake.exe builds all the modules listed in Cesysgen.bat. Normally, you should not use this parameter, because a target device with only one project may be incomplete.
注意 –p 后接的是目录,也就是public下ms分的那几个大的类型模块目录名。
例如:sysgen –p common unimodem
该命令的执行目录应为public目录下。
在sysgen命令执行完成后,可以在WINCE500\PBWorkspaces\DMP532\WINCE500\TELECHIPS_ARMV4I\cesysgen\oak\target\ARMV4I\retail下面找到对应的.dll或者别的类型的文件。
转载于:https://blog.51cto.com/bluefish/474668