我已经安装了 Qt SDK 1.2.1,并且当我使用 Qt 4.7.3 为 Symbian S60 构建示例应用程序之一时。
该示例编译成功,但在部署步骤中失败。这是编译器输出:
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 附带的示例项目中,但不是新创建的项目。
如何修复此错误?
最佳答案
仔细检查编译器输出后,我注意到了这一点:
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
}
看起来它并不真的需要这些功能,我不知道为什么要添加它们。可能是一个疏忽。
关于c++ - :-1: error: Automatic patching failed at C:\QtSDK\Symbian\SDKs\Symbian1Qt473\bin\createpackage. 第 357 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810529/