Ich versuche, OpenCV in VS 2010 zu verwenden. Ich bin Amateur und lerne die ersten Schritte aus dem OpenCV-Wiki. Beim Versuch, mein Projekt zu debuggen, werden jedoch die folgenden Fehler angezeigt:
'C: \ Windows \ SysWOW64 \ ntdll.dll', Die PDB-Datei 'C: \ Windows \ SysWOW64 \ kernel32.dll' kann nicht gefunden oder geöffnet werden. Die PDB-Datei 'C: \ Windows \ SysWOW64 \ kernellbase kann nicht gefunden oder geöffnet werden. dll ', PDB-Datei kann nicht gefunden oder geöffnet werden
Ich habe diese Dateien im richtigen Verzeichnis. Warum kann sie dann nicht geöffnet werden? Was soll ich tun, um das Problem zu beheben?
visual-studio
visual-studio-2010
visual-c++
opencv
HamidRezaHamidiEsfahani
quelle
quelle
Antworten:
Ändern Sie zunächst die folgenden Parameter:
Extras -> Optionen -> Debuggen -> Symbole -> Server -> Ja
Drücken Sie dann Ctrl+ F5und Sie werden erstaunliche Dinge sehen.
quelle
Ich bin mir ziemlich sicher, dass dies Warnungen sind , keine Fehler. Ihr Projekt sollte immer noch gut laufen.
Da Sie jedoch immer versuchen sollten, Compiler-Warnungen zu beheben, wollen wir sehen, was wir entdecken können. Ich bin mit OpenCV überhaupt nicht vertraut und Sie verlinken nicht auf das Wiki-Tutorial, dem Sie folgen. Mir scheint jedoch, dass das Problem darin besteht, dass Sie eine 64-Bit-Version von Windows ausführen (wie der Ordner "SysWOW64" im Pfad zu den DLL-Dateien zeigt), aber das OpenCV-Material, das Sie versuchen, wird erstellt für eine 32-Bit-Plattform. Daher müssen Sie das Projekt möglicherweise mit CMake neu erstellen, wie hier erläutert .
Insbesondere sind die aufgelisteten Dateien Windows-Systemdateien. PDB-Dateien enthalten Debugging-Informationen, mit denen Visual Studio kompilierten Code aufrufen und debuggen kann. Sie benötigen die PDB-Dateien nicht, damit Systembibliotheken Ihren eigenen Code debuggen können. Wenn Sie möchten, können Sie auch die Symbole für die Systembibliotheken herunterladen . Gehen Sie zum Menü "Debug", klicken Sie auf "Optionen und Einstellungen" und scrollen Sie im Listenfeld rechts nach unten, bis "Quellserver-Unterstützung aktivieren" angezeigt wird. Stellen Sie sicher, dass diese Option aktiviert ist. Klicken Sie dann in der Baumansicht links auf "Symbole" und stellen Sie sicher, dass die Option "Microsoft Symbol Server" ausgewählt ist. Klicken Sie auf OK, um den Dialog zu schließen, und versuchen Sie dann, ihn neu zu erstellen.
quelle
Visual Studio Community Edition 2015
Habe den ganzen Tag diesen Fehler gehabt. Ich habe es schließlich behoben, indem ich zu Extras> Einstellungen importieren und exportieren> Alle Optionen zurücksetzen> Allgemeine Einstellungen zurücksetzen ging.
Gehen Sie nach dem Zurücksetzen zu Extras> Optionen> Debuggen> Symbole> - Aktivieren Sie dann das Kontrollkästchen neben Microsoft Symbol Server.
Führen Sie Ihre App im Debug-Modus aus, und es werden Fenster geöffnet, in denen angegeben wird, dass Symbole für eine Reihe verschiedener DLL-Dateien heruntergeladen werden. Lass es damit fertig werden.
Sobald es abgeschlossen ist, sollte es wieder funktionieren.
quelle
Ich hatte das gleiche Problem. Es stellt sich heraus, dass ich beim Kompilieren eines Projekts, das ich von einer anderen Person erhalten habe, nicht das richtige StartUp-Projekt festgelegt habe (klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf das gewünschte Startprojekt und wählen Sie "Als StartUp-Projekt festlegen"). Vielleicht hilft das, Prost.
quelle
Wenn Sie sich auf den ersten Thread / eine andere Möglichkeit beziehen, kann VS die PDF-Datei des Prozesses nicht öffnen oder finden, wenn Ihre ausführbare Datei im Hintergrund ausgeführt wird. Ich habe mit mpiexec gearbeitet und bin auf dieses Problem gestoßen. Überprüfen Sie immer Ihren Task-Manager und beenden Sie alle Exec-Prozesse, die Sie in Ihrem Projekt erstellen werden. Sobald ich das getan habe, hat es debuggt oder gut gebaut.
Wenn Sie versuchen, mit der Warnung fortzufahren, werden die Haltepunkte nicht erreicht und die aktuelle ausführbare Datei wird nicht angezeigt
quelle
Für VS2013- Benutzer, die sich hier wie ich befinden:
Sie werden sehen, dass das
Cache symbols in this directory:
Feld leer ist. Sie können den Pfad entweder selbst durchsuchen / eingeben oder einfach auf dieLoad all symbols
Schaltfläche klicken . Ein Warnfenster mit der Meldung "Da Sie kein Symbol-Cache-Verzeichnis ausgewählt haben, wird die Standardeinstellung verwendet" wird angezeigt. Sie sehen nunC:\Users\XXXX\AppData\Local\Temp\SymbolCache
im zuvor leeren Pfadfeld. Klicken SieLoad all symbols
ein zweites Mal und Sie sollten eingestellt sein. Klicken Sie auf OK, und reinigen und erstellen Sie Ihre Lösung nur aus Gründen der Sorgfalt.quelle
Ich habe festgestellt, dass diese Fehler manchmal auf fehlende Berechtigungen beim Kompilieren eines Projekts zurückzuführen sind. Daher werde ich als Administrator ausgeführt, damit es ordnungsgemäß funktioniert.
quelle
Ich habe die gleichen Warnungen. Ich bin mir nicht sicher, ob es sich um 32 vs 64 Bit handelt. Ich habe gerade die neuen Symbole geladen und einige Probleme wurden gelöst, aber die bezüglich OpenCV bleiben bestehen. Dies ist ein Auszug aus der Ausgabe mit gelöstem oder ungelöstem Problem:
Der Code gibt 0 aus, falls jemand danach fragt.
quelle
Ich hatte das gleiche Problem. Das Debuggen funktioniert nicht mit dem Material, das mit der ausführbaren OpenCV-Datei geliefert wird. Sie müssen Ihre eigenen Binärdateien erstellen.
Aktivieren Sie dann Microsoft Symbol Server unter Debug-> Optionen und Einstellungen-> Debug-> Symbole
quelle
Ich bin auf das gleiche Problem gestoßen. Als ich meinen Unit Test mit C ++ - Code ausführte, wurde die Fehlermeldung "PDB-Datei kann nicht gefunden oder geöffnet werden" angezeigt.
Protokolle
Als ich mir das Ausgabeprotokoll in Visual Studio ansah, stellte ich fest, dass es im falschen Ordner angezeigt wurde. Ich hatte den WinUnit-Ordner umbenannt, aber etwas im WinUnit-Code suchte nach der PDB-Datei unter Verwendung des alten Ordnernamens. Ich denke, sie haben es hart codiert.
Habe das Problem gefunden
Als ich die WinUnit-Dateien zum ersten Mal heruntergeladen und entpackt habe, hieß der Hauptordner "WinUnit-1.2.0909.1". Nachdem ich die Datei entpackt hatte, benannte ich den Ordner in "WinUnit" um, da die Eingabe während der Einrichtung des Visual Studio-Projekts einfacher ist. Aber anscheinend hat dies die Fähigkeit zum Auffinden der PDB-Datei beeinträchtigt, obwohl ich alles gemäß der WinUnit-Dokumentation eingerichtet habe.
Mein Fix
Ich habe den Ordnernamen wieder in das Original geändert und es funktioniert.
Seltsam.
quelle
Hatte hier das gleiche Problem, aber eine andere Lösung hat funktioniert.
Zuerst habe ich Folgendes versucht, von denen keines funktioniert hat:
Laden Sie Symbole wie von seanlitow vorgeschlagen
Entfernen / Hinzufügen eines Verweises auf PresentationFramework und PresentationCore
Die Lösung bestand darin, die letzten Änderungen, die ich an meinem Code vorgenommen hatte , rückgängig zu machen . Ich hatte gerade ein paar Optionsfelder und Ereignishandler für aktivierte und deaktivierte Ereignisse hinzugefügt. Nach dem Entfernen meiner letzten Änderungen wurde alles kompiliert. Ich habe dann meine genauen Änderungen wieder hinzugefügt und alles richtig kompiliert. Ich verstehe nicht, warum das funktioniert hat - ich kann mir nur ein Problem mit meiner VS-Lösung vorstellen. Wenn jedoch keiner der anderen Vorschläge funktioniert, können Sie versuchen, Ihre letzten Änderungen zurückzusetzen. HINWEIS: Wenn Sie Visual Studio schließen und erneut öffnen, geht Ihr Rückgängig-Verlauf verloren. Versuchen Sie dies daher möglicherweise, bevor Sie VS schließen.
quelle