Qt 5.5.0 WebEngine pour la construction de compatibilité Windows XP étapes
PROBLÈME AVEC DE PRESSE OFFICIELLE
Qt 5.5.0 module qwebengine de libération est incompatible avec oficial applications Windows XP, même si vous forcez votre projet binaire avec XP compatibilité Compilation/liens paramètres/drapeaux (DLL QT sont probablement encore incompatibles) et vous pouvez exec votre fichier binaire exe sous XP, vous ne pouvez pas utiliser le module qwebengine de toute façon - juste parce que QtWebEnbineProcess.exe est construit comme EXE non valide pour Windows XP. Pour que Qt WebEngine 5.5.0 puisse être exécuté sur winXP, vous devez reconstruire les modules Qt avec des options supplémentaires (comme cette version officielle de Qt est incompatible, vous devez en créer une nouvelle). Sous Windows, QtWebEngine ne peut être construit que dans Visual Studio 2013, il est impossible de créer du code chrome dans une autre version de Visual Studio. Normalement Qt et chrome sous Windows peuvent être construits en utilisant le support OpenGL et/ou ANGLE (qui utilise Direc3D9Ex ou Direct3D11) pour les opérations graphiques matérielles, si vous construisez pour WinXP vous n'avez pas le choix, vous devez utiliser OpenGL (qui est le pire choix, si vous avez choisi), parce que Direct3D9Ex/Direct3D11 sont disponibles pour installer seulement à partir de Vista +. Donc, assurez-vous que vous avez installé des pilotes graphiques mis à jour pour la machine où va fonctionner votre programme, car les pilotes stock XP pour votre carte pour OpenGL seront très obsolètes et ne fonctionneront peut-être pas.
PROBLÈME GENESIS
Les problèmes se produisent juste parce que par défaut Visual C++ 2013 compilation de l'application est incompatible avec XP (Runtime C et sous-EXE), mais vous pouvez toujours modifier et utiliser l'exécution compatible avec Windows XP dans Visual C++ 2013 , cela est décrit là:
http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
vous devez donc ajouter basiquement chemins d'accès Windows SDK7.1A pour inclure, libs et binaires, passer/D_USING_V120_SDK71_ pour chaque exécution du compilateur cl pour Qt et le chrome et passer/SUBSYSTEM: WINDOWS, 5.01 ou /SUBSYSTEM:CONSOLE.5.01 pour les invocations de liens pendant la construction de votre projet et QtWebEngineProcess.exe, simple ne l'est pas :)
exigences Build:
Visual C++ 2013 (dans mon cas installé dans un endroit stardard: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0)
SDK Windows 7.1A - dernier SDK compatible avec Windows XP,/forces de D_USING_V120_SDK71_ à l'utiliser (dans mon cas installé dans un endroit standard: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A)
Outils tiers, utilisés pour construire du chrome: Git, Perl, Python, pscp.exe - vous devez ajouter leurs binaires à la variable d'environnement PATH avant la construction.
OpenGL ES SDK pour utiliser l'implémentation d'OpenGL ES 2.0, j'ai téléchargé depuis AMD (dans mon cas, j'ai téléchargé sur D: \ rzaba \ qt \ GLES_SDK).
Qt 5.5.0 sources- décompressé à D: \ rzaba \ qt \ src-5.5.0
(je ne peux pas coller plus de liens parce que je n'ai pas la réputation 2 points, OMG: D)
processus de construction
d'abord lire ceci: http://doc.qt.io/qt-5/windows-building.html, nous devons le faire comme là-bas, mais peu pas de plus est nécessaire pour XP build compatible.
Maintenant, si le code source est décompressé et tout est installé créer qt5vars.cmd, dans mon cas, il ressemble à ceci:
************************************************************************
REM ********** INITIALIZE ENV FOR MSVC 2013 CL COMPILER **********
SET PATH=C:\Windows;C:\Windows\system32
CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
REM ********** UPDATE INCLUDE & LIB TO SUPPORT XP WIN SDK 7.1A **********
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
SET CL=/D_USING_V120_SDK71_;%CL%
REM ********** INCLUDE OPENGL DESKTOP GLES SDK **********
SET PATH=D:\rzaba\qt\GLES_SDK\x86;%PATH%
SET INCLUDE=D:\rzaba\qt\GLES_SDK\include;%INCLUDE%
SET LIB=D:\rzaba\qt\GLES_SDK\x86;%LIB%
REM ********** 3D PARTY BUILD TOOLS BINARIES: PUTTY, RUBY, PERL, GIT, PYTHON **********
SET PATH=D:\putty;D:\Ruby22\bin;D:\Perl\bin;D:\Git;D:\Git\bin;D:\Git\cmd;D:\Python27;%PATH%
REM ********** SETUP QT QMAKE ENV **********
SET QMAKESPEC=win32-msvc2013
SET PATH=D:\rzaba\qt\src-5.5.0\qtbase\bin;D:\rzaba\qt\src-5.5.0\gnuwin32\bin;%PATH%
************************************************************************
de script configure Généralement PATH, INCLUDE, variables d'environnement LIB pour la construction. Dans CL env variable peut forcer le réglage du compilateur CL, c'est l'endroit principal où nous définissons l'utilisation de la plate-forme V120_XP.
Maintenant, avant de commencer à vous construire doit modifier certains fichiers de sources:
vous devez modifier le fichier: qtwebengine \ src \ 3rdparty \ ninja \ configure.py ligne Chercher avec: « si platform.is_msvc(): "et là vous avez cl drapeaux de compilateur, vous devez supprimer le drapeau '/ WX', car il échouera la compilation pour sdk7.1. Vous pouvez également y ajouter un drapeau '/ D_USING_V120_SDK71_' pour vous assurer que l'outil ninja définira également V120_xp.
et vous devez modifier un autre fichier: qtwebengine \ src \ processus \ process.pro et il ajouter ces lignes:
win32: {
QMAKE_CXXFLAGS + =/D_USING_V120_SDK71
QMAKE_LFLAGS_CONSOLE + = /SUBSYSTEM:CONSOLE,5.1
QMAKE_LFLAGS_WINDOWS + = /SUBSYSTEM:WINDOWS,5.1
}
vous devriez également ajouter cela dans votre projet.Cela générera le fichier QtWebEngineProcess.exe compatible avec XP. Sans cela, Visual C++ 2013 génère un fichier EXE non valide pour winXP.
Si vous ligne de commande ouverte et appel de ce script maintenant vous devez cd au répertoire source qt et appeler configure, voici ma configuration:
configure -prefix d: [votreliste chemin d'installation] -confirm-licence -target xp -opensource -opengl bureau -debug-and-release -nomake exemples -nomake tests -no-warnings-are-errors
Donc je veux construire le débogage et la sortie. Si vous configurez tout correctement, vous devriez voir un processus de compilation et créer des Makefiles pour les modules qt. Après cet appel nmake, la compilation dure quelques heures, et nmake install pour copier/installer les bibliothèques créées en préfixe. Rappelez-vous que le périphérique graphique doit prendre en charge OpenGL ES 2.0, sinon, après la création de QWebView, votre application se bloque par le pilote OpenGL ou l'interface graphique de la fenêtre devient noire. Si vous voulez exécuter votre application sur une ancienne machine, vous pouvez créer un rendu Mesa OpenGL (je l'ai fait et les performances sont faibles, quelques secondes par le contenu de l'interface graphique, mais cela fonctionne) et l'utiliser à la place.
Vous avez écrit dans le fichier * .pro: QMAKE_CXXFLAGS + =/D_USING_V120_SDK71. Mais où est le dernier trait de soulignement/D_USING_V120_SDK71_? En outre, j'ai rencontré l'instruction suivante QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01 sur l'autre site. (1) Alors, quelle version dois-je choisir - 5.01 ou 5.1? (2) Où devrais-je définir '--single-process' si je voudrais déboguer mon programme qui appelle implicitement QtWebEngineProcess.exe? (3) Quelles sont les dll tierces que je dois déployer (par exemple OpenGL ES SDK)? (4) Est-ce que la version de débogage du programme est capable de fonctionner avec QtWebEngineProcess.exe (mélange de versions et débogage des DLLs dans un dossier)? – ilya
S'il vous plaît, ajouter des informations explicites que ce moteur ne fonctionne pas avec XP depuis Qt 5.6 :(https://bugreports.qt.io/browse/QTBUG-49900 – ilya