[QXmlQuery] problème lors de la compilation QT 5.15
-
Bonjour à tous,
Je suis sous Ubuntu 23.10 / QT Creator 12.0.1 et j'utilise QT 5.15.2 (pour l'instant je ne peux passer en 6 pour mon projet ;-)... J'utilise habituellement QDomDocument et QXmlStreamReader pour utiliser du xml, mais cette fois, j'ai voulu utiliser Xpath et donc utiliser QXmlQuery. Comme conseillé dans le documentation, j'ai rajouté dans mon fichier projet .pro "xmlpatterns" comme ceci, voici la ligne que j'ai à ce jour :
QT += qml quick sql xmlpatterns xml
Dans mon code, j'ai rajouté cette include pour pouvoir l'utiliser:
#include <QXmlQuery>
Je le retrouve bien aussi dans mes includes dans l'OS avec QT installé dans mon home:
Pas d'erreur dans le code dans QT creator et cela semble bien reconnu :
Mais quand je compile (même après des cleans, des restarts de l'OS, de qt creator, testé sur 2 pc installés avec 2 versions de linux (l'autre est sous une ancien version de QT Creator et QT 5.15.1) , je tombe toujours sur les mêmes erreurs lors de la compilation (je suis en debug pour le moment) :
Qu'est ce que j'ai pu louper ? j'ai même essayé de rajouter des packages de xmlpatterns manuellement, mais je pense que je l'avais déjà avec l'installation standard de QT, non ?
Merci d'avance pour votre aide
Et bonne journéeP.S: voici les lignes du code principal où j'utilise QXmlQuery:
//using xpath to isolate games of a system QXmlQuery query; QString res; /* * Use QXmlQuery to execute and XPath query. * */ query.setFocus(&xmlFile); query.setQuery("/root/system/platform[test()='" + sysentry.shortname + "']/../games/game[@tested='ok']/name"); if ( ! query.isValid()){ return 0; } query.evaluateTo(&res);
-
Bonjour et bienvenue,
L'image montre les sources mais qu'est-ce que les fichiers sont trouvable dans l'installation ?
D'ailleurs, est-ce que Qt est installé avec le manager de packages de la distribution ou avec l'installateur online ?
-
@SGaist je confirme que c'est installé avec l'installateur offline, qu'est ce que je peux donc vérifier en plus dans mon installation ?
j'ai déjà regardé pour les libs, elles sont bien là, il me semble... pour la partie XML...
-
Ça semble bon. Serait-il possible de voir le contenu du fichier
.pro
? -
@SGaist Voici le fichier .pro de la partie backend de ce projet qu'habituellement je modifie quand j'ai besoin:
TEMPLATE = lib QT += core qml quick sql xmlpatterns xml CONFIG += c++17 staticlib warn_on exceptions debug android: QT += androidextras !isEmpty(USE_SDL_GAMEPAD)|!isEmpty(USE_SDL_POWER): include($${TOP_SRCDIR}/thirdparty/link_to_sdl.pri) isEmpty(USE_SDL_GAMEPAD): QT += gamepad !isEmpty(NO_LEGACY_SDL): DEFINES *= WITHOUT_LEGACY_SDL !isEmpty(INSIDE_FLATPAK): DEFINES *= PEGASUS_INSIDE_FLATPAK msvc: DEFINES *= _USE_MATH_DEFINES DEFINES *= HAVE_CDROM SOURCES += \ Backend.cpp \ DownloadManager.cpp \ FrontendLayer.cpp \ GamepadAxisNavigation.cpp \ PegasusAssets.cpp \ ProcessLauncher.cpp \ ScriptRunner.cpp \ Paths.cpp \ AppSettings.cpp \ Log.cpp \ GamepadButtonNavigation.cpp \ RootFolders.cpp \ ScriptManager.cpp HEADERS += \ Backend.h \ CliArgs.h \ DownloadManager.h \ FrontendLayer.h \ GamepadAxisNavigation.h \ PegasusAssets.h \ ProcessLauncher.h \ ScriptRunner.h \ Paths.h \ AppSettings.h \ Log.h \ GamepadButtonNavigation.h \ RootFolders.h \ ScriptManager.h \ KeyEmitter.h include(imggen/imggen.pri) include(model/model.pri) include(parsers/parsers.pri) include(platform/platform.pri) include(providers/providers.pri) include(types/types.pri) include(utils/utils.pri) include(audio/audio.pri) include(hardware/hardware.pri) include(storage/storage.pri) DEFINES *= $${COMMON_DEFINES} include($${TOP_SRCDIR}/thirdparty/thirdparty.pri) include($${TOP_SRCDIR}/thirdparty/link_to_pulse.pri) include($${TOP_SRCDIR}/thirdparty/link_to_zip.pri)
merci d'avance ;-)
-
@Bozo-The-Geek Est-ce que la variable
QT
est modifiée dans un des autres fichier ?