ferramenta de linha de comando para localizar dependências Dll

votos
17

Qual comando existem ferramentas de linha para encontrar recursivamente todas as dependências DLL? Tentei dumpbin e Dependency Walker (aka Depends.exe) que vêm com Visual Studio, mas dumpbin só encontra o primeiro nível de dependências, e a saída do Dependency Walker não é realmente computador amigável.

Publicado 09/12/2008 em 15:43
fonte usuário
Em outras línguas...                            


3 respostas

votos
14

Experimente a /oc:FILENAMEopção de depende, para escrever um arquivo de valores separados por vírgulas. Este parece que é mais fácil de analisar por máquina do que o "free-form" arquivo de texto gerado pelo / ot: FILENAME / opção.

Respondeu 09/12/2008 em 15:51
fonte usuário

votos
8

Dependência Walker tem muitas opções , incluindo opções de saída para arquivo. Uma delas é /oc:<path>que escreve a saída para um arquivo CSV , que é facilmente analisado por outras ferramentas, ou mesmo importados para um aplicativo de planilha.

Dependendo do que você precisa as dependências para você pode realmente ter ferramentas multi-plataforma para fazer isso também - por exemplo CMake correção-bundle que pode copiar todas as dependências não são do sistema detectados para a localização do seu alvo (executável ou biblioteca compartilhada), mesmo no Windows. A documentação não explica claramente, mas eu tenho usado para esse fim em um projeto multi-plataforma por um tempo agora.

Respondeu 09/12/2008 em 15:45
fonte usuário

votos
2

Usando a /oc:<path>opção, Dependency Walker dá-lhe um arquivo CSV que é facilmente analisado. Se você também quiser os caminhos para as bibliotecas que você também precisa usar a -f 1opção. Você pode querer fazer isso se você precisa copiar as bibliotecas (por exemplo, para fazer uma versão de distribuição de um executável).

Infelizmente, na saída a partir depends.exe os caminhos para as bibliotecas são convertidos em letras minúsculas e o nome da DLL é convertido para maiúsculas. Por exemplo,

c: \ qtsdk \ Desktop \ qt \ 4.7.4 \ mingw \ bin \ QTCORE4.DLL

Quando a biblioteca é realmente localizado em:

C: \ QtSDK \ Desktop \ Qt \ 4.7.4 \ mingw \ bin \ QtCore4.dll

Não parece ser uma maneira de obter depends.exe denunciar os caminhos corretamente o que é vergonha.

Respondeu 06/06/2013 em 04:33
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more