相信很多人问怎么单独编译public目录下的源码?查遍互联网,也找不到有效的解决方法,因为没有多少人对wince的整个编译合成镜像机制有多了解。
网上的很多人给出方法基本上如下截图(要么Build and Sysgen,要么Sysgen,要么blddemo -q,这个过程需要耗费大量时间):
那你还不是把整个public重新编译了一遍,费时费力,还号称什么单独编译。
最根本的方法是,打开命令行,执行如下步骤(如何在VS2005中打开命令行?)
1、命令行切换到该程序目录,build -c,进行编译;
2、如果该程序source里TARGETTYPE指定的类型,指定生成exe或dll,不用sysgen,否则 sysgen -p common 生成模块名称 ;
3、比如TARGETTYPE=LIBRARY 就必须执行sysgen ,TARGETTYPE=DYNLINK,或者EXE,或者DLL则不需要,否则无法生成exe或者dll文件;
3、具体模块名称叫什么,找下common整个子目录的makefile,最大的那个就是,一般是PUBLIC\COMMON\CESYSGEN这个目录下的makefile文件最大;
4、到底单独编译成功了没有,看一下Release目录下的文件修改日期。
例如:
单独编译public目录下的710mux和RIL代码:编译710,build -c后需要 sysgen -p cellcore Mux07_10
编译RIL,build -c后需要 sysgen -p cellcore RIL
单独编译public\common\oak\drivers\gpsid目录下的源码:
build -c以后,需要sysgen -p common gpsid
如果没有提示什么错误,应该就可以有相关的.dll文件生成在release目录下了,查看该文件的修改日期是否为最新。