Estou tentando usar o OpenCV no VS 2010. Sou um amador e estou aprendendo os primeiros passos na wiki do OpenCV. No entanto, ao tentar depurar meu projeto, recebo os seguintes erros:
'C: \ Windows \ SysWOW64 \ ntdll.dll', Não é possível localizar ou abrir o arquivo PDB 'C: \ Windows \ SysWOW64 \ kernel32.dll', Não é possível localizar ou abrir o arquivo PDB 'C: \ Windows \ SysWOW64 \ kernellbase. dll ', Não é possível encontrar ou abrir o arquivo PDB
Tenho esses arquivos no diretório certo, então por que não consigo abri-los? O que devo fazer para resolver o problema?
visual-studio
visual-studio-2010
visual-c++
opencv
HamidRezaHamidiEsfahani
fonte
fonte
Respostas:
Primeiro altere os seguintes parâmetros:
Ferramentas -> Opções -> Depuração -> Símbolos -> Servidor -> Sim
Em seguida, pressione Ctrl+ F5e você verá coisas incríveis.
fonte
Tenho certeza de que são avisos , não erros. Seu projeto ainda deve funcionar bem.
No entanto, como você deve sempre tentar corrigir os avisos do compilador, vamos ver o que podemos descobrir. Não estou familiarizado com o OpenCV, e você não tem um link para o tutorial wiki que está seguindo. Mas me parece que o problema é que você está executando uma versão de 64 bits do Windows (como evidenciado pela pasta "SysWOW64" no caminho para os arquivos DLL), mas o material do OpenCV que você está tentando é criado para uma plataforma de 32 bits. Portanto, pode ser necessário reconstruir o projeto usando CMake, conforme explicado aqui .
Mais especificamente, os arquivos listados são arquivos de sistema do Windows. Os arquivos PDB contêm informações de depuração que o Visual Studio usa para permitir que você entre e depure o código compilado. Na verdade, você não precisa dos arquivos PDB para que as bibliotecas do sistema possam depurar seu próprio código. Mas, se quiser, você também pode baixar os símbolos para as bibliotecas do sistema. Vá para o menu "Debug", clique em "Opções e configurações" e role para baixo na caixa de listagem à direita até ver "Ativar suporte ao servidor de origem". Certifique-se de que essa opção esteja marcada. Em seguida, na visualização em árvore à esquerda, clique em "Símbolos" e certifique-se de que a opção "Servidores de símbolos da Microsoft" esteja selecionada. Clique em OK para fechar a caixa de diálogo e tente reconstruir.
fonte
Visual Studio Community Edition 2015
Tive esse erro o dia todo. Eu finalmente consertei indo para Ferramentas> Importar e exportar configurações> Redefinir todas as opções> Redefinir configurações gerais.
Depois de redefinir, vá para Ferramentas> Opções> Depuração> Símbolos> - Em seguida, marque a caixa ao lado de Microsoft Symbol Servers.
Execute seu aplicativo no modo de depuração e ele abrirá janelas informando que está baixando símbolos para vários arquivos .dll diferentes. Deixe terminar de fazer isso.
Depois de concluído, ele deve funcionar novamente.
fonte
Eu tive o mesmo problema. Acontece que, compilando um projeto que recebi de outra pessoa, não defini o projeto de inicialização correto (clique com o botão direito no projeto de inicialização desejado no gerenciador de soluções e selecione "definir como projeto de inicialização"). Talvez isso ajude, saúde.
fonte
Referindo-se ao primeiro tópico / outra possibilidade do VS não conseguir abrir ou encontrar o arquivo pdb do processo é quando você tem seu executável rodando em segundo plano. Eu estava trabalhando com o mpiexec e tive esse problema. Sempre verifique seu gerenciador de tarefas e elimine qualquer processo executivo que você vai construir em seu projeto. Depois de fazer isso, ele depurou ou construiu bem.
Além disso, se você tentar continuar com o aviso, os pontos de interrupção não serão atingidos e não terá o executável atual
fonte
Para usuários do VS2013 que se encontram aqui como eu:
Você verá que o
Cache symbols in this directory:
campo está vazio; você pode navegar / inserir o caminho sozinho ou simplesmente clicar noLoad all symbols
botão. Uma janela de alerta aparecerá dizendo "Como você não selecionou um diretório de cache de símbolos, o padrão será usado". Agora você veráC:\Users\XXXX\AppData\Local\Temp\SymbolCache
no campo de caminho anteriormente vazio. CliqueLoad all symbols
uma segunda vez e pronto. Clique em ok, e apenas por uma questão de diligência, limpe e reconstrua sua solução.fonte
Descobri que esses erros às vezes são causados pela falta de permissões ao compilar um projeto - então, corro como administrador para fazer com que ele funcione corretamente.
fonte
Estou tendo os mesmos avisos. Não tenho certeza se é uma questão de 32 x 64 bits. Acabei de carregar os novos símbolos e alguns problemas foram resolvidos, mas os relativos ao OpenCV ainda persistem. Este é um extrato da saída com o problema resolvido vs. não resolvido:
O código está saindo de 0 caso alguém pergunte.
fonte
Eu tive o mesmo problema. A depuração não funciona com o material que vem com o executável OpenCV. você tem que construir seus próprios binários.
Em seguida, habilite os servidores de símbolo da Microsoft em Depurar-> opções e configurações-> depurar-> símbolos
fonte
Eu tive o mesmo problema. Quando executei meu Teste de Unidade no código C ++, recebi um erro que dizia "Não é possível encontrar ou abrir o arquivo PDB".
Histórico
Quando olhei para o log de saída no Visual Studio, vi que ele estava procurando na pasta errada. Eu havia renomeado a pasta WinUnit, mas algo no código WinUnit estava procurando o arquivo PDB usando o nome da pasta antiga. Eu acho que eles codificaram.
Encontrou o problema
Quando fiz o download e descompactei os arquivos WinUnit pela primeira vez, a pasta principal se chamava "WinUnit-1.2.0909.1". Depois de descompactar o arquivo, renomeei a pasta para "WinUnit", pois é mais fácil digitar durante a configuração do projeto do Visual Studio. Mas, aparentemente, isso quebrou a capacidade de encontrar o arquivo PDB, embora eu configurei tudo de acordo com a documentação do WinUnit.
Minha Correção
Mudei o nome da pasta de volta para o original e funciona.
Esquisito.
fonte
Tive o mesmo problema aqui, mas uma solução diferente funcionou.
Primeiro, tentei o seguinte, nenhum dos quais funcionou:
Carregar símbolos conforme sugerido por seanlitow
Remover / adicionar referência a PresentationFramework e PresentationCore
A solução foi desfazer as últimas alterações que fiz em meu código. Eu tinha acabado de adicionar alguns botões de opção e manipuladores de eventos para eventos marcados e não marcados. Depois de remover minhas alterações recentes, tudo compilado. Em seguida, adicionei minhas alterações exatas de volta e tudo compilado corretamente. Não entendo por que isso funcionou - a única coisa que consigo pensar é um problema com minha solução VS. De qualquer forma, se nenhuma das outras sugestões funcionar, você pode tentar reverter suas alterações mais recentes. OBSERVAÇÃO: se você fechar e abrir novamente o Visual Studio, seu histórico de desfazer será perdido ... então você pode tentar isso antes de fechar o VS.
fonte