我已经安装了Qt SDK 1.2.1,当我使用Qt 4.7.3构建其中一个示例应用程序 - 用于Symbian S60的Haptics Player时。
示例编译成功,但在部署步骤失败。这是编译器输出:
ERROR: Automatic patching failed at C:\QtSDK\Symbian\SDKs\Symbian1Qt473\bin\createpackage.pl line 357.
make[1]: *** [ok_sis] Error 2
C:\QtSDK\Symbian\SDKs\Symbian1Qt473\epoc32\tools\make.exe: *** [sis] Error 2
01:38:16: The process "C:\QtSDK\Symbian\SDKs\Symbian1Qt473\epoc32\tools\make.exe" exited with code 2.
Error while building project hapticsplayer (target: Symbian Device)
When executing build step 'Create SIS Package'
但是,一个新创建的空项目在我的手机上成功运行,即在Qt SDK附带的示例项目中发生此错误,但不是新创建的项目。
如何解决此错误?
答案 0 :(得分:1)
仔细检查编译器输出后,我注意到了这一点:
Patching: Executable with capabilities incompatible with self-signing detected: "hapticsplayer_patched_caps.exe". (Incompatible capabilities: "ReadDeviceData", "WriteDeviceData".) Reducing capabilities is only supported for libraries.
Patching: Unable to patch the package for self-singing.
Use a proper developer certificate for signing this package.
显然,功能WriteDeviceData
和ReadDeviceData
不能用于自签名包,并且需要适当的开发人员证书(这不是免费的,我没有)。
从.pro文件中删除这些行修复了问题,现在Haptics Player编译:
symbian: {
TARGET.CAPABILITY = WriteDeviceData ReadDeviceData
}
它似乎并不真正需要这些功能,我不知道它们为什么被添加。可能是疏忽。