Estoy intentando usar OpenCV en VS 2010. Soy un aficionado y estoy aprendiendo los primeros pasos del wiki de OpenCV. Sin embargo, cuando intento depurar mi proyecto, obtengo los siguientes errores:
'C: \ Windows \ SysWOW64 \ ntdll.dll', No se puede encontrar o abrir el archivo PDB 'C: \ Windows \ SysWOW64 \ kernel32.dll', No se puede encontrar o abrir el archivo PDB 'C: \ Windows \ SysWOW64 \ kernellbase. dll ', no se puede encontrar o abrir el archivo PDB
Tengo esos archivos en el directorio correcto, entonces, ¿por qué no puedo abrirlos? ¿Qué debo hacer para solucionar el problema?
visual-studio
visual-studio-2010
visual-c++
opencv
HamidRezaHamidiEsfahani
fuente
fuente
Respuestas:
Primero cambie los siguientes parámetros:
Herramientas -> Opciones -> Depuración -> Símbolos -> Servidor -> Sí
Luego presione Ctrl+ F5y verá cosas increíbles.
fuente
Estoy bastante seguro de que son advertencias , no errores. Su proyecto aún debería funcionar bien.
Sin embargo, dado que siempre debe intentar corregir las advertencias del compilador, veamos qué podemos descubrir. No estoy familiarizado en absoluto con OpenCV y no enlazas con el tutorial wiki que estás siguiendo. Pero me parece que el problema es que estás ejecutando una versión de Windows de 64 bits (como lo demuestra la carpeta "SysWOW64" en la ruta de los archivos DLL), pero las cosas de OpenCV que estás probando están compiladas para una plataforma de 32 bits. Por lo tanto, es posible que deba reconstruir el proyecto utilizando CMake, como se explica aquí .
Más específicamente, los archivos que se enumeran son archivos del sistema de Windows. Los archivos PDB contienen información de depuración que Visual Studio usa para permitirle ingresar y depurar código compilado. En realidad, no necesita los archivos PDB para que las bibliotecas del sistema puedan depurar su propio código. Pero si lo desea, también puede descargar los símbolos de las bibliotecas del sistema. Vaya al menú "Depurar", haga clic en "Opciones y configuración" y desplácese hacia abajo en el cuadro de lista de la derecha hasta que vea "Habilitar la compatibilidad con el servidor de origen". Asegúrese de que esa opción esté marcada. Luego, en la vista de árbol a la izquierda, haga clic en "Símbolos" y asegúrese de que la opción "Servidores de símbolos de Microsoft" esté seleccionada. Haga clic en Aceptar para cerrar el cuadro de diálogo y luego intente reconstruir.
fuente
Visual Studio Community Edition 2015
He tenido este error todo el día. Finalmente lo arreglé yendo a Herramientas> Importar y exportar configuraciones> Restablecer todas las opciones> Restablecer configuración general.
Una vez que se restablezca, vaya a Herramientas> Opciones> Depuración> Símbolos> - Luego marque la casilla junto a Microsoft Symbol Servers.
Ejecute su aplicación en modo de depuración y se abrirá una ventana que dice que está descargando símbolos para un montón de archivos .dll diferentes. Deja que termine de hacer esto.
Una vez que se complete, debería funcionar nuevamente.
fuente
Yo tuve el mismo problema. Resulta que, al compilar un proyecto que recibí de otra persona, no configuré el proyecto de inicio correcto (haga clic con el botón derecho en el proyecto de inicio deseado en el explorador de soluciones y seleccione "establecer como proyecto de inicio"). Quizás esto ayude, salud.
fuente
Refiriéndose al primer hilo / otra posibilidad que VS no puede abrir o encontrar el archivo pdb del proceso es cuando tiene su ejecutable ejecutándose en segundo plano. Estaba trabajando con mpiexec y encontré este problema. Siempre verifique su administrador de tareas y elimine cualquier proceso ejecutivo que vaya a construir en su proyecto. Una vez que hice eso, se depuró o construyó bien.
Además, si intenta continuar con la advertencia, los puntos de interrupción no se alcanzarán y no tendrá el ejecutable actual
fuente
Para los usuarios de VS2013 que se encuentran aquí como yo:
Verá que el
Cache symbols in this directory:
campo está vacío; puede navegar / ingresar la ruta usted mismo o simplemente seguir adelante y hacer clic en elLoad all symbols
botón. Aparecerá una ventana de alerta que dice "Como no ha seleccionado un directorio de caché de símbolos, se utilizará el predeterminado". Ahora veráC:\Users\XXXX\AppData\Local\Temp\SymbolCache
en el campo de ruta previamente vacío. Haga clicLoad all symbols
una segunda vez y debería estar listo. Haga clic en Aceptar, y por el simple hecho de ser diligente, limpie y reconstruya su solución.fuente
Descubrí que estos errores a veces se deben a la falta de permisos al compilar un proyecto, por lo que corro como administrador para que funcione correctamente.
fuente
Tengo las mismas advertencias. No estoy seguro de que sea una cuestión de 32 vs 64 bits. Acabo de cargar los nuevos símbolos y se solucionaron algunos problemas, pero los relacionados con OpenCV aún persisten. Este es un extracto de la salida con problema resuelto vs no resuelto:
El código sale 0 en caso de que alguien pregunte.
fuente
Yo tuve el mismo problema. La depuración no funciona con las cosas que vienen con el ejecutable OpenCV. tienes que construir tus propios binarios.
Luego habilite los servidores de símbolos de Microsoft en Depurar-> opciones y configuraciones-> depurar-> símbolos
fuente
Me encontré con el mismo problema. Cuando ejecuté mi prueba unitaria en código C ++, recibí un error que decía "No puedo encontrar o abrir el archivo PDB".
Registros
Cuando miré el registro de salida en Visual Studio, vi que estaba buscando en la carpeta incorrecta. Había cambiado el nombre de la carpeta WinUnit, pero algo en el código de WinUnit buscaba el archivo PDB con el nombre de la carpeta anterior. Supongo que lo codificaron.
Encontré el problema
Cuando descargué y descomprimí por primera vez los archivos de WinUnit, la carpeta principal se llamaba "WinUnit-1.2.0909.1". Después de descomprimir el archivo, cambié el nombre de la carpeta a "WinUnit", ya que es más fácil escribir durante la configuración del proyecto de Visual Studio. Pero aparentemente esto rompió la capacidad de encontrar el archivo PDB, aunque configuré todo de acuerdo con la documentación de WinUnit.
Mi solución
Cambié el nombre de la carpeta al original y funciona.
Extraño.
fuente
Tuve el mismo problema aquí, pero funcionó una solución diferente.
Primero, probé lo siguiente, ninguno de los cuales funcionó:
Cargue los símbolos como lo sugiere seanlitow
Eliminar / Agregar referencia a PresentationFramework y PresentationCore
La solución fue deshacer los últimos cambios que hice en mi código. Acababa de agregar un par de botones de opción y controladores de eventos para eventos marcados y no marcados. Después de eliminar mis cambios recientes, todo se compiló. Luego agregué mis cambios exactos y todo se compiló correctamente. No entiendo por qué funcionó, lo único que se me ocurre es un problema con mi solución VS. De todos modos, si ninguna de las otras sugerencias funciona, puede intentar revertir los cambios más recientes. NOTA: si cierra y vuelve a abrir Visual Studio, su historial de deshacer se pierde ... así que puede intentar esto antes de cerrar VS.
fuente