2016-04-01 2 views
-1

Ich habe eine Anwendung mit Qt5.5, die open cv verwenden. Es funktioniert, jetzt möchte ich es auf mehreren Computern bereitstellen.Warum meine Qt-App msvcp120d.dll auf einem Computer, aber nicht meins anfordert

Am ersten PC (PC1) funktioniert es auch: Ich kopierte die DLL von Qt und öffne cv und füge die Pfade in den Umgebungsvariablen hinzu. Ich kopierte einen Ordner mit meiner Anwendung, einige DLL und Daten (Bilder).

Auf dem zweiten PC (PC2) habe ich das gleiche gemacht, aber ich kann die Anwendung nicht öffnen. Ich habe den Fehler "msvcp120d.dll fehlt ..".

  • Ich kompilierte meine App im Freigabemodus.
  • Auf meinem PC und PC1 habe ich msvcp120d.dll auf dem Schreibtisch verschoben, und die App nicht anfordern.
  • Wissen Sie, warum die App eine Debug-DLL fragt?
  • Ich habe bald die Redistribuables-Pakete Visual C++ (x64 und x86) auf PC2 installiert, aber es installiert msvcp120d.dll nicht.

Haben Sie eine andere Idee? Dank '

Antwort

2

Es scheint, als ob einige der Bibliotheken, die Sie verwenden, eine Verbindung zu einer Debug-CRT-Bibliothek (angezeigt durch das abschließende d in "msvcp120d.dll"). Diese sind nicht verteilbar und nur auf Systemen verfügbar, auf denen Visual Studio installiert ist.

Ich würde empfehlen, Abhängigkeitswalker zu verwenden, um herauszufinden, welche Dlls/Bibliotheken, die die Debug-Version benötigen, und sie dann als Release-Konfiguration neu kompilieren.

+0

Ich merke, dass die App nicht funktioniert, wenn es nicht die Debug-Lib von opencv gibt, also ist es wahrscheinlich das. Allerdings habe ich die Debug-Lib im qmake kommentiert. Also ich weiß nicht, warum es das anfordern ..? –

+0

(Ich habe das qmake nachher ausgeführt und ich habe die Release-Bibliotheken von opencv freigegeben) –