c++ - :-1: error: Automatic patching failed at C:\QtSDK\Symbian\SDKs\Symbian1Qt473\bin\createpackage. 第 357 行

标签 c++ qt symbian s60

我已经安装了 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.

显然,WriteDeviceDataReadDeviceData 功能不能用于自签名包,并且需要适当的开发人员证书(这不是免费的,我不'拥有它)。

从 .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/

相关文章:

c++ - 如何在 Qslider 的自定义位置放置刻度?

Symbian 操作系统市场

塞类学习

c++ - Lua:这会导致段错误吗

c++ - 指向单例的共享指针不能相互识别

c++ - QTest覆盖涂料法

multithreading - 在两个线程之间共享 Symbian 的 RFile

java - Java中c++的goto在特定场景下的等价物

c++ - 设置priority_queue容器的好处

qt - 如何使用 cmake 包含 qt 目录和库