Próbuję używać OpenCV w VS 2010. Jestem amatorem i uczę się pierwszych kroków z wiki OpenCV. Jednak podczas próby debugowania projektu otrzymuję następujące błędy:
„C: \ Windows \ SysWOW64 \ ntdll.dll”, Nie można znaleźć lub otworzyć pliku PDB „C: \ Windows \ SysWOW64 \ kernel32.dll”, Nie można znaleźć lub otworzyć pliku PDB „C: \ Windows \ SysWOW64 \ kernellbase. dll ', Nie można znaleźć lub otworzyć pliku PDB
Mam te pliki we właściwym katalogu, więc dlaczego nie może ich otworzyć? Co mam zrobić, aby rozwiązać problem?
visual-studio
visual-studio-2010
visual-c++
opencv
HamidRezaHamidiEsfahani
źródło
źródło
Odpowiedzi:
Najpierw zmień następujące parametry:
Narzędzia -> Opcje -> Debugowanie -> Symbole -> Serwer -> Tak
Następnie naciśnij Ctrl+, F5a zobaczysz niesamowite rzeczy.
źródło
Jestem prawie pewien, że to ostrzeżenia , a nie błędy. Twój projekt powinien nadal działać dobrze.
Ponieważ jednak zawsze powinieneś próbować naprawić ostrzeżenia kompilatora, zobaczmy, co możemy odkryć. W ogóle nie jestem zaznajomiony z OpenCV i nie podajesz linku do samouczka wiki, który obserwujesz. Ale wydaje mi się, że problem polega na tym, że używasz 64-bitowej wersji systemu Windows (o czym świadczy folder „SysWOW64” w ścieżce do plików DLL), ale plik OpenCV, który próbujesz, jest zbudowany dla platformy 32-bitowej. Dlatego może być konieczne przebudowanie projektu przy użyciu CMake, jak wyjaśniono tutaj .
Mówiąc dokładniej, wymienione pliki to pliki systemowe Windows. Pliki PDB zawierają informacje o debugowaniu, których używa program Visual Studio, aby umożliwić przechodzenie do skompilowanego kodu i debugowanie go. W rzeczywistości nie potrzebujesz plików PDB dla bibliotek systemowych, aby móc debugować własny kod. Ale jeśli chcesz, możesz również pobrać symbole dla bibliotek systemowych. Przejdź do menu „Debuguj”, kliknij „Opcje i ustawienia” i przewiń listę w dół po prawej stronie, aż zobaczysz „Włącz obsługę serwera źródłowego”. Upewnij się, że ta opcja jest zaznaczona. Następnie w widoku drzewa po lewej stronie kliknij „Symbole” i upewnij się, że wybrana jest opcja „Serwery symboli Microsoft”. Kliknij przycisk OK, aby zamknąć okno dialogowe, a następnie spróbuj odbudować.
źródło
Visual Studio Community Edition 2015
Miałem ten błąd przez cały dzień. W końcu naprawiłem to, przechodząc do Narzędzia> Ustawienia importu i eksportu> Resetuj wszystkie opcje> Resetuj ustawienia ogólne.
Po zresetowaniu przejdź do Narzędzia> Opcje> Debugowanie> Symbole> - Następnie zaznacz pole obok pozycji Serwery symboli firmy Microsoft.
Uruchom aplikację w trybie debugowania, a otworzy się okno z informacją, że pobiera symbole dla wielu różnych plików .dll. Niech to skończy.
Po zakończeniu powinno działać ponownie.
źródło
Miałem ten sam problem. Okazuje się, że kompilując projekt, który dostałem od kogoś innego, nie ustawiłem poprawnego projektu StartUp (kliknij prawym przyciskiem myszy żądany projekt startowy w eksploratorze rozwiązań i wybierz „ustaw jako projekt startowy”). Może to pomoże, na zdrowie.
źródło
Odnosząc się do pierwszego wątku / innej możliwości, VS nie może otworzyć lub znaleźć pliku pdb procesu, gdy masz plik wykonywalny uruchomiony w tle. Pracowałem z mpiexec i napotkałem ten problem. Zawsze sprawdzaj menedżera zadań i zabijaj wszelkie procesy wykonawcze, które zamierzasz zbudować w swoim projekcie. Kiedy to zrobiłem, debugował lub zbudował dobrze.
Ponadto, jeśli spróbujesz kontynuować z ostrzeżeniem, punkty przerwania nie zostaną trafione i nie będzie miał bieżącego pliku wykonywalnego
źródło
Dla użytkowników VS2013, którzy znaleźli się tutaj tak jak ja:
Zobaczysz, że
Cache symbols in this directory:
pole jest puste; możesz samodzielnie przejrzeć / wprowadzić ścieżkę lub po prostu przejść dalej i kliknąćLoad all symbols
przycisk. Pojawi się okno alertu z informacją „Ponieważ nie wybrałeś katalogu pamięci podręcznej symboli, zostanie użyty domyślny”. Zobaczysz terazC:\Users\XXXX\AppData\Local\Temp\SymbolCache
w poprzednio pustym polu ścieżki. KliknijLoad all symbols
po raz drugi i powinieneś być ustawiony. Uderz ok i tylko dla zachowania staranności wyczyść i odbuduj swoje rozwiązanie.źródło
Zauważyłem, że czasami te błędy wynikają z braku uprawnień podczas kompilowania projektu - więc działam jako administrator, aby zapewnić prawidłowe działanie.
źródło
Mam te same ostrzeżenia. Nie jestem pewien, czy jest to kwestia bitów 32 vs 64. Właśnie załadowałem nowe symbole i niektóre problemy zostały rozwiązane, ale te dotyczące OpenCV nadal pozostają. To jest fragment wyniku z rozwiązanym lub nierozwiązanym problemem:
Kod wychodzi z 0 na wypadek, gdyby ktoś zapytał.
źródło
Miałem ten sam problem. Debugowanie nie działa z materiałami dostarczanymi z plikiem wykonywalnym OpenCV. musisz zbudować własne pliki binarne.
Następnie włącz serwery symboli Microsoft w Debug-> Opcje i ustawienia-> Debuguj-> Symbole
źródło
Napotkałem ten sam problem. Kiedy uruchomiłem test jednostkowy na kodzie C ++, pojawił się komunikat o błędzie „Nie można znaleźć lub otworzyć pliku PDB”.
Dzienniki
Kiedy spojrzałem na dziennik wyjściowy w programie Visual Studio, zobaczyłem, że szukał on niewłaściwego folderu. Zmieniłem nazwę folderu WinUnit, ale coś w kodzie WinUnit szukało pliku PDB przy użyciu starej nazwy folderu. Myślę, że zakodowali to na stałe.
Znalazłem problem
Kiedy po raz pierwszy pobrałem i rozpakowałem pliki WinUnit, główny folder nazywał się „WinUnit-1.2.0909.1”. Po rozpakowaniu pliku zmieniłem nazwę folderu na „WinUnit”, ponieważ łatwiej jest wpisać tekst podczas instalacji projektu programu Visual Studio. Ale najwyraźniej zepsuło to możliwość znalezienia pliku PDB, mimo że wszystko skonfigurowałem zgodnie z dokumentacją WinUnit.
Moja poprawka
Zmieniłem nazwę folderu z powrotem na oryginalną i działa.
Dziwne.
źródło
Miałem ten sam problem, ale zadziałało inne rozwiązanie.
Najpierw wypróbowałem następujące rozwiązania, z których żadna nie działała:
Załaduj symbole zgodnie z sugestią seanlitow
Usuń / Dodaj odwołanie do PresentationFramework i PresentationCore
Rozwiązaniem było cofnięcie kilku ostatnich zmian, które wprowadziłem w swoim kodzie. Właśnie dodałem kilka przycisków opcji i programów obsługi zdarzeń dla zaznaczonych i niezaznaczonych zdarzeń. Po usunięciu moich ostatnich zmian wszystko się skompilowało. Następnie z powrotem dodałem dokładne zmiany i wszystko zostało poprawnie skompilowane. Nie rozumiem, dlaczego to zadziałało - jedyne, co przychodzi mi do głowy, to problem z moim rozwiązaniem VS. W każdym razie, jeśli żadna z pozostałych sugestii nie zadziała, możesz spróbować cofnąć ostatnie zmiany. UWAGA: jeśli zamkniesz i ponownie otworzysz program Visual Studio, Twoja historia cofania zostanie utracona, więc możesz spróbować tego przed zamknięciem programu VS.
źródło