Compilando Qt 5.12.12 para OpenHarmony com ambiente MinGW

Configuração do Ambiente para Compilação Qt + OpenHarmony

Para desenvolver aplicações Qt voltadas ao sistema OpenHarmony (especificamente utilizando a versão 5.12.12), é necessário preparar um ambiente de compilação cruzada (cross-compilation) bem definido. Abaixo estão os passos detalhados para configurar e construir o Qt 5.12.12 compatível com arquiteturas OpenHarmony, como x86_64 e aarch64.

Baixar Componentes Necesários

  • MinGW 7.3.0 (64-bit): Utilize a versão específica em http://sgamer.oicp.net:8888/ohos/mingw730_64.rar. Versões mais recentes podem causar incompatibilidades durante a compilação.
  • SDK OpenHarmony: Disponível em http://sgamer.oicp.net:8888/ohos/sdk.rar.
  • Código-fonte do Qt 5.12.12: Baixe de http://sgamer.oicp.net:8888/ohos/qt-harmonyos-src-5.12.12-20260403.zip.
  • Perl portátil (Strawberry Perl): Requerido pelo processo de configuração do Qt. Obtenha em http://sgamer.oicp.net:8888/ohos/strawberry-perl-5.42.2.1-64bit-portable.zip.

Estrutura de Diretórios Recomendada


D:\oh\
├── mingw64                          # Compilador MinGW
├── tqtc-qt5                         # Código-fonte do Qt 5.12.12
├── strawberry-perl-5.42.2.1-64bit-portable  # Ambiente Perl
├── build_x86_64                     # Build intermediário para x86_64
├── build_aarch64                    # Build intermediário para aarch64
├── qt-5.12.12-ohos-x86_64           # Instalação final Qt x86_64
└── qt-5.12.12-ohos-aarch64          # Instalação final Qt aarch64

D:\fpc4ohos\
└── sdk\default\openharmony\native   # SDK OpenHarmony nativo

Variáveis de Ambiente

Adicione as seguintes variáveis ao sistema (via Painel de Controle → Sistema → Configurações Avançadas → Variáveis de Ambiente). Após configurar, reinicie o computador para garantir que as alterações tenham efeito:


NATIVE_OHOS_SDK = D:\fpc4ohos\sdk\default\openharmony\native
OHOS_SDK_SYSROOT = %NATIVE_OHOS_SDK%\sysroot
LLVM_INSTALL_DIR = %NATIVE_OHOS_SDK%\llvm
QT5_ROOT_DIR = D:\oh\tqtc-qt5

Otimizações de Compilação

Para acelerar o processo e remover módulos desnecessários, defina a variável QT_SKIPS no terminal antes da configuração:


SET QT_SKIPS=-skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtdocgallery -skip qtfeedback -skip qtgamepad -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpim -skip qtpurchasing -skip qtqa -skip qtremoteobjects -skip qtrepotools -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsystems -skip qttools -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -no-dbus -skip doc

Compilação para x86_64

Navegue até o diretório de construção e execute:


cd D:\oh\build_x86_64
call ..\tqtc-qt5\configure.bat -v ^
  -xplatform ohos-clang ^
  -device-option CROSS_COMPILE=%LLVM_INSTALL_DIR%\bin ^
  -extprefix D:\oh\qt-5.12.12-ohos-x86_64 ^
  -opensource -confirm-license ^
  -debug ^
  -no-use-gold-linker ^
  %QT_SKIPS% ^
  -nomake tests -nomake examples ^
  -no-gcc-sysroot ^
  -opengles3 ^
  -c++std c++14 ^
  -ohos-arch x86_64 ^
  -Wall -Wno-switch

Após a configuração bem-sucedida:


mingw32-make -j8
mingw32-make install

Compilação para aarch64 (ARM64)

No diretório de build ARM64:


cd D:\oh\build_aarch64
call ..\tqtc-qt5\configure.bat -v ^
  -xplatform ohos-clang ^
  -device-option CROSS_COMPILE=%LLVM_INSTALL_DIR%\bin ^
  -extprefix D:\oh\qt-5.12.12-ohos-aarch64 ^
  -opensource -confirm-license ^
  -debug ^
  -no-use-gold-linker ^
  %QT_SKIPS% ^
  -nomake tests -nomake examples ^
  -no-gcc-sysroot ^
  -opengles3 ^
  -c++std c++14 ^
  -ohos-arch arm64-v8a ^
  -Wall -Wno-switch

Conclua com:


mingw32-make -j8
mingw32-make install

Resultado Final

Após a conclusão dos processos, os diretórios qt-5.12.12-ohos-x86_64 e qt-5.12.12-ohos-aarch64 conterão as bibliotecas Qt compiladas e prontas para uso em projetos OpenHarmony. Essas instalações podem ser referenciadas por IDEs ou ferramentas de build para desenvolvimento de interfaces gráficas nativas.

Tags: Qt5 OpenHarmony Cross-Compilation MinGW LLVM

Publicado em 9-12 23:45