我正在为 Symbian 应用程序开发一个 Qt。我必须使用某些特定于特定 S60 版本的特定平台 API。例如:
-S60 第三版 FP1 库: S60_common_lib、S60_3rd_ed_lib
-S60 第三版 FP2 库: S60_common_lib、S60_3rd_ed_lib、Symbian_common_lib
-S60 第 5 版库: S60_common_lib、S60_5th_ed_lib、Symbian_common_lib
-Symbian^3 库: S60_5th_ed_lib、Symbian3_lib、Symbian_common_lib
如您所见,某些库在多个平台之间共享。目前,我必须多次编译整个项目,以便为所有不同的 S60 平台获取单独的 .exe、资源等。我通过在 pro 文件中为每个平台定义一个标识符来做到这一点。例如:
# symbian 3
DEFINES += symbian_3_build
symbian:LIBS += # ...
# S60 3.1
# DEFINES += s60_fp1
# LIBS...
在实际代码中,我有类似的东西:
#ifdef symbian_3_build
#include <some_s3_header.h>
#elseif s60_fp1
#include <some_fp1_header.h>
#endif
所以我的问题是:
这是为 Symbian 应用程序编译多平台 Qt 的唯一方法(例如,有没有办法让它只使用一个 exe)?
我正在使用 Qt 创建者。在为一个平台编译后,我从 epoc 文件夹复制资源文件(.exe、.rsc、_reg.rsc),然后再编译到下一个平台(重建覆盖旧文件)。在所有版本都编译并收集到特定位置后,我将创建一个单独的 sis 文件,该文件根据平台安装不同的版本。这个过程很容易出错。有没有更好的方法来做到这一点?
谢谢。