prj_platforms可以设置BLDMAKE BLDFILES命令生成哪几种类型的.MAKE文件。如果BLD文件中没有prj_platforms参数,也就是缺省条件下,在S60 2.x会默认生成WINS、WINSCW、ARMI、ARM4、THUMB等几乎所有平台的.MAKE文件,所以这时ABLD MAKEFILE VC6不会有问题,因为其中包含了WINS平台的VC6.MAKE。
但在基于Symbian OS v9.1的S60 3.0中如果BLD文件中没有prj_platforms参数则只会默认生成WINSCW、 GCCXML、ARMV5、CW_IDE平台的.MAKE文件,这样就不会有VC6.MAKE;或者有prj_platforms参数项但其中没有定义WINS平台,同样也不会有VC6.MAKE;两者都会造成ABLD MAKEFILE VC6无法运行。
所以对于S60 3.0必须在BLD文件中加入prj_platforms参数,或在prj_platforms参数项中增加定义WINS,也就是BLD.INF中必须有:
PRJ_PLATFORMS
... WINS ...
这样才能通过BLDMAKE BLDFILES或BLDMAKE BLDFILES WINS生成VC6.MAKE,之后ABLD MAKEFILE VC6会生成VC++ 6.0所需的.dsw和.dsp文件。
如果想要某个平台的目标类型最终编译成功,则%EPOCROOT%/epoc32/realease/目录下以该平台名称为目录名的子目录中必须有一系列的库文件供编译系统使用。对于真机平台,2版的SDK在默认情况下一般不会有ARM4的(3版则根本不支持),只有%EPOCROOT%/epoc32/release/ARMI和%EPOCROOT%/epoc32/release/THUMB;至于WINS平台的目录则不同版本的SDK会有所不同。
当然,执行如下:
>bldmake bldfiles arm4
>abld build arm4 urel
命令之后会自动生成一个%EPOCROOT%/epoc32/release/ARMI/UREL目录,但其中没有支持ARM4平台的一系列库文件,所以无法编译生成ARM4的目标类型
但在基于Symbian OS v9.1的S60 3.0中如果BLD文件中没有prj_platforms参数则只会默认生成WINSCW、 GCCXML、ARMV5、CW_IDE平台的.MAKE文件,这样就不会有VC6.MAKE;或者有prj_platforms参数项但其中没有定义WINS平台,同样也不会有VC6.MAKE;两者都会造成ABLD MAKEFILE VC6无法运行。
所以对于S60 3.0必须在BLD文件中加入prj_platforms参数,或在prj_platforms参数项中增加定义WINS,也就是BLD.INF中必须有:
PRJ_PLATFORMS
... WINS ...
这样才能通过BLDMAKE BLDFILES或BLDMAKE BLDFILES WINS生成VC6.MAKE,之后ABLD MAKEFILE VC6会生成VC++ 6.0所需的.dsw和.dsp文件。
如果想要某个平台的目标类型最终编译成功,则%EPOCROOT%/epoc32/realease/目录下以该平台名称为目录名的子目录中必须有一系列的库文件供编译系统使用。对于真机平台,2版的SDK在默认情况下一般不会有ARM4的(3版则根本不支持),只有%EPOCROOT%/epoc32/release/ARMI和%EPOCROOT%/epoc32/release/THUMB;至于WINS平台的目录则不同版本的SDK会有所不同。
当然,执行如下:
>bldmake bldfiles arm4
>abld build arm4 urel
命令之后会自动生成一个%EPOCROOT%/epoc32/release/ARMI/UREL目录,但其中没有支持ARM4平台的一系列库文件,所以无法编译生成ARM4的目标类型