Guide de compilation du projet QtScrcpy sur Windows
QtScrcpy est une application open source permettant de projeter et contrôler un appareil Android via USB ou réseau TCP/IP, sans nécessiter d'accès root. Ce guide détaillé explique comment compiler le projet localement sous Windows, en couvrant les prérequis, les étapes de construction, les configurations CMake et les solutions aux problèmes courants.
Prérequis système
- Système d’exploitation : Windows 10 ou 11 (64 bits)
- Compilateur : Microsoft Visual Studio 2019 ou ultérieur (MSVC v142 ou supérieur)
- Qt : Version 5.12.5 minimum, version MSVC 2019 64 bits recommandée
- Outils : CMake 3.19+, Git, et éventuellement Qt Creator
Configuration des variables d’environnement
Pour faciliter l’intégration des outils, définissez les variables suivantes selon votre installation :
set QT_ROOT=D:\Qt\Qt5.12.5\5.12.5
set VS_VARS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat"
Ces chemins seront utilisés par les scripts de compilation pour localiser Qt et initialiser l’environnement MSVC.
Récupération du code source
Clonez le dépôt avec ses sous-modules Git :
git clone https://gitcode.com/barry-ran/QtScrcpy.git
cd QtScrcpy
git submodule update --init --recursive
Les sous-modules incluent des bibliothèques tierces essentielles comme libadb et des utilitaires multimédias.
Méthodes de compilation
Option 1 : Script automatisé (recommandé)
Le projet fournit un script batch dans le dossier ci/win :
cd ci\win
build_for_win.bat Release x64
Arguments supportés :
- Mode :
Release,Debug,RelWithDebInfo,MinSizeRel - Architecture :
x86oux64
Option 2 : Compilation manuelle avec CMake
Créez un répertoire de build et configurez CMake :
mkdir build && cd build
cmake .. ^
-DCMAKE_PREFIX_PATH="%QT_ROOT%\msvc2019_64\lib\cmake" ^
-DCMAKE_BUILD_TYPE=Release ^
-G "Visual Studio 16 2019" ^
-A x64
Lancez la compilation :
cmake --build . --config Release -j%NUMBER_OF_PROCESSORS%
Option 3 : Utilisation de Qt Creator
- Ouvrez
CMakeLists.txtdepuis Qt Creator - Sélectionnez un Kit compatible MSVC 2019 64 bits
- Définissez le type de build (ex: Release)
- Cliquez sur "Configure", puis "Build"
Configuration CMake avancée
Le fichier CMakeLists.txt inclut plusieurs directives critiques :
cmake_minimum_required(VERSION 3.19)
# Dépendances Qt
find_package(Qt5 REQUIRED COMPONENTS Widgets Network Multimedia)
# Optimisations Windows
if(WIN32)
add_compile_definitions(NOMINMAX WIN32_LEAN_AND_MEAN)
add_compile_options(/utf-8 /W4 /EHsc)
add_link_options(/SAFESEH:NO)
endif()
Structure de sortie après compilation
Une fois terminée, la compilation génère :
output/
└── x64/
└── Release/
├── QtScrcpy.exe
├── config.ini
├── sndcpy.bat
├── sndcpy.apk
└── dlls (Qt5Core.dll, etc.)
Problèmes fréquents et correctifs
Erreur : Qt non trouvé
Assurez-vous que CMAKE_PREFIX_PATH pointe vers le bon répertoire Qt (contenant Qt5Config.cmake).
Erreur MSVC incompatibilité
Utilisez toujours une version cohérente entre Qt et MSVC. Par exemple, Qt compilé avec MSVC2019 ne fonctionne pas avec MSVC2017.
Échec des sous-modules
Exécutez à nouveau :
git submodule sync --recursive
git submodule update --init --recursive
Problèmes d’encodage
Ajoutez cette directive dans CMake pour forcer l’UTF-8 :
target_compile_options(your_target PRIVATE /utf-8)
Comparaison des modes de build
| Mode | Optimisation | Informations debug | Taille binaire | Usage typique |
|---|---|---|---|---|
| Release | /O2 | Aucune | Faible | Distribution |
| Debug | Aucune | Symboles complets | Élevée | Développement |
| RelWithDebInfo | /O2 | Symboles | Moyenne | Analyse de performence |
Optimisations de compilation
- Compilation parallèle : Utilisez
-j8ou-j%NUMBER_OF_PROCESSORS% - Build incrémental : Réduit considérablement le temps lors des modifications mineures
- En-têtes précompilés : À activer dans CMake si disponible
Validation du résultat
Après compilation :
- Vérifiez l’existence de
QtScrcpy.exe - Utilisez
Dependency Walkeroudumpbin /dependentspour valider les DLL requises - Testez la connexion à un appareil Android via USB
Personnalisation des scripts
Exemple de script batch personnalisé :
@echo off
set BUILD_DIR=%~dp0..\build
set CONFIG=%1
set ARCH=%2
if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
pushd "%BUILD_DIR%"
cmake -S .. -B . -G "Visual Studio 16 2019" -A %ARCH% -DCMAKE_BUILD_TYPE=%CONFIG%
if errorlevel 1 exit /b 1
cmake --build . --config %CONFIG% -j8
popd
Conclusion
La compilation de QtScrcpy sous Windows repose sur une configuration précise de Qt, MSVC et CMake. En suivant ce guide, vous pouvez produire une version exécutable locale, adaptable à vos besoins (personnnalisation d’interface, intégration de fonctionnalités). Le recours aux scripts fournis simplifie grandement le processus, mais la maîtrise de CMake permet une flexibilité maximale.