Pergunta

Eu tenho um projeto muito grande com toneladas de arquivos de cabeçalho complicados que incluem todos os outros. Há também um grande número de bibliotecas de terceiros dos quais ele depende. Estou tentando arrumar a bagunça, mas eu estou tendo alguns problemas, já que uma grande parte do tempo eu vou remover uma diretiva #include apenas para descobrir que o material foi incluindo ainda é incluído através de um dos outros arquivos . Existe alguma ferramenta que pode me ajudar a entender isso? Eu realmente gostaria de ser capaz de clicar em um arquivo .h e pedir-lhe quais arquivos CPP está incluído no (direta ou indiretamente), e os caminhos através dos quais ele está incluído, e também clicar em um arquivo cpp e pedir-lhe que. arquivos h são incluídos (direta e indiretamente). Eu nunca ouvi falar de uma ferramenta que faz isso, e um pouco de googling rápida não se transformou nada, mas talvez eu não sei o que procurar.

Outras dicas

Para VS2003 há bandeira / showIncludes (em propriedades C / C ++ / avançadas). Isto irá imprimir todos os cabeçalhos de cada arquivo .cpp inclui eo que eles incluem, de modo que você pode ir de lá.

Eu tenho certeza que é o mesmo opção no mesmo lugar para VS2008.

Se você usar compiladores GCC, tente este

g++ -M abc.cpp

ele irá mostrar todos incluem dependências para o abc.cpp arquivo

A sua situação faz-me lembrar da minha própria. Eu tenho um monte de cabeçalhos que eu criei que eu uso como uma biblioteca, em vez de se preocupar com um DLL.

Claro que o cíclico inclui pode se tornar problemático, por isso acho que uma ferramenta como o Visual Assist X (1) ajuda com este tipo de coisa. Ele tem uma função que pode encontrar referências a coisas, de modo que você pode facilmente eliminar, onde algo está sendo definido / declarada / incluídos etc. Ele também tem um monte de outras funcionalidades úteis, então eu considero ser bastante útil.

Há provavelmente outras ferramentas / plugins que têm uma função de referência, mas geralmente como uma característica entre as outras funções de refatoração e produtividade do utilitário.

HTH

É muito tedioso, mas você pode binário procurar o seu caminho para onde um #include acontece usando #error (e mensagem #pragma) para diminuir as quais incluem linha está puxando no terceiro. Eu fiz isso no caso de um único arquivo que eu estava tentando rastrear, mas parece que seu problema é maior para que, provavelmente, uma das ferramentas de outros já mencionados seria mais eficaz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top