Я занимаюсь разработкой приложения Qt для Symbian.Я должен использовать определенные API для конкретной платформы, которые доступны только в определенной версии S60.Например:
-S60 3-е издание библиотеки FP1: S60_common_lib, S60_3rd_ed_lib
-S60 3-е издание библиотеки FP2: S60_common_lib, S60_3rd_ed_li_, Symbian_common1009 *
-S60 5-е издание libs: S60_common_lib, S60_5th_ed_lib, Symbian_common_lib
-Symbian ^ 3 libs: S60_5th_ed_lib * 101ian * _lib * Symbian3_com_lib, Symbian 3_lib, Symbian* Как видите, некоторые библиотеки используются несколькими платформами.В настоящее время мне приходится компилировать весь проект несколько раз, чтобы получить отдельный .exe, ресурсы и т. Д. Для всех различных платформ S60.Я делаю это, определяя идентификатор для каждой платформы в файле 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
Итак, мои вопросы:
Этоединственный способ компилировать мультиплатформенное приложение Qt для Symbian (например, есть ли способ заставить его работать только с одним exe-файлом)?
Я использую Qt Creator.После компиляции для одной платформы я копирую файлы ресурсов (.exe, .rsc, _reg.rsc) из папки epoc перед компиляцией на следующую платформу (перезаписываю старые файлы).После того, как все версии будут скомпилированы и собраны в определенном месте, я создам один файл sis, который устанавливает разные версии в зависимости от платформы.Этот процесс очень подвержен ошибкам.Есть ли лучший способ сделать это?
Спасибо.