1
votes

Point d'entrée Qt ​​introuvable dans le mode de sortie de Visual Studio

Mon application Qt Widgets (Qt 5.15) fonctionne bien dans Qt creator 4.12.2 avec le compilateur MSVC2019 64 bits. En utilisant Qt VS Tools v2.5.1 et le même compilateur, j'ai pu exécuter le projet dans Visual Studio 2019 en mode Débogage , mais lorsque j'essaie d'exécuter le projet en mode Release strong >, J'obtiens le message d'erreur suivant:

Entry Point Not Found. The procedure entry point ?contextMenuEvent@QLabel@@MEAAXPEAVQContextMenuEvent@@@Z could not be located in the dynamic link library C:\...\app1.exe

Je sais qu'il y a des questions similaires (voir ici et ici ) mais les messages d'erreur indiquent clairement un fichier .dll manquant alors que dans mon cas, il fait référence à un fichier .exe. Quelqu'un peut-il expliquer pourquoi cela se produit et comment puis-je résoudre ce problème?


0 commentaires

3 Réponses :


0
votes

Il est possible que certaines des DLL requises par Qt ne soient pas copiées dans le répertoire de votre version de version, comme les erreurs que vous avez liées, du moins à partir d'erreurs similaires que j'ai rencontrées. Je ne sais pas pourquoi l'erreur est sur le .exe lui-même.

Une façon stupide de tester est de jeter votre exe avec toutes les dll de Qt dans un répertoire et de voir si quelque chose change.

De plus, assurez-vous que vous utilisez la même version de Qt sur VS et QtCreator, spécialement si vous en avez plusieurs installés.


0 commentaires

0
votes

La solution la plus simple est de construire directement dans le répertoire qt bin. Dans VS, ouvrez la boîte de dialogue Projet> Propriétés, sous Répertoire général / de sortie, entrez le chemin d'accès correct de qt bin (quelque chose comme "C: \ Qt \ 5.14.0 \ msvc2017_64 \ bin"). Cela devrait faire l'affaire.


0 commentaires

0
votes

J'ai eu un problème très similaire mais avec QPushButton au lieu de QLabel. Le problème était que pour une raison quelconque, Visual Studio chargeait certains des fichiers Qt .dll à partir d'endroits apparemment aléatoires.

Vérifiez la sortie de débogage et voyez s'il y a quelque chose de bizarre. Dans mon cas, Visual Studio «chargeait» le Qt5Gui.dll (entre autres) à partir de C: \ ProgramData .. \ miktex \ 5.15.0 \ msvc2019_64 \ bin ...

Là où il ne le ferait évidemment pas être trouvé. Donc, vérifiez ces messages étranges, comme par exemple:

"myprogram.exe" (Win32): Loaded "C:\somewhere\outside\qt\folder\5.15.0\msvc2019_64\bin\Qt5Gui.dll". Symbols loaded.

Les dossiers "C: \ quelque part \ dehors \ qt \ dossier" étaient dans mon chemin, je les ai donc supprimés puis Visual Studio n'a eu aucun problème pour charger les dll à partir du bon endroit.


0 commentaires