Como posso tornar a construção do Visual Studio muito detalhada?


98

Preciso controlar cada sinalizador, cada opção usada no processo de compilação pelos binários do Visual Studio. Tentei obter uma saída detalhada usando vcbuild, mas não consegui.

O que devo fazer para ver tudo executado pelo Visual Studio para mim? Não é necessário obter a saída na janela de construção. Qualquer lugar estaria bem.


Respostas:


67
  1. Abra a caixa de diálogo de propriedades do projeto e escolha

    Propriedades de configuraçãoC / C ++Geral

  2. Altere a configuração de Suppress Startup BannerparaNo

  3. A cl(s) linha (s) de comando serão mostradas na janela de saída.


1
Isso afeta apenas o compilador, não o vinculador ou os recursos.
user2284570

6
No VS2017, esse 'truque' parece não funcionar mais. No entanto, construir no prompt do desenvolvedor usando msbuild com o nome do arquivo da solução ou do projeto como argumento cli mostra a chamada cl com seus argumentos.
Emile Vrijdags

@EmileVrijdags Eu posso ver perfeitamente a clsaída do comando com VS2017 seguindo essas etapas. Portanto, o "truque" funciona para mim.
sobrinho

150

Menu FerramentasOpçõesProjetos e soluçõesCompilar e executarDetalhamento de saída de compilação do projeto MSBuild : Diagnóstico


2
Isso não muda nada. Ainda estou obtendo a mesma saída na janela de saída.
Geo

3
Funciona bem para mim no VC10.
abergmeier

2
@Geo entra em vigor assim que você reiniciar o Visual Studio.
absinto,

@absynce, no VS 2017 isso não tem efeito nem mesmo na reinicialização do Visual Studi0 2017. Estou usando o VS 2017 community edition. Portanto, essa funcionalidade não parece implementada corretamente no VS 2017.
Domingo

65

Visual Studio 2008:

Vá para o menu FerramentasOpções e, em seguida, Projeto e soluções → seção Construir e executar . Você tem uma caixa de combinação para verbosidade.

Opção de compilador C ++ (propriedades do projeto):

  • Pré-processador - Gerar arquivo pré-processado para ver a unidade de tradução gerada pelo pré-processador
  • Avançado - Mostrar inclui - exibe nomes de arquivos incluídos na saída do compilador

1
Isso não mostra sinalizadores de compilação e vinculador, apenas nomes de arquivo que estão sendo processados. É possível ver os comandos exatos que são executados ou isso é impossível com o VS?
stefanB de

2
@stefanB: você não precisa de sinalizadores especiais para isso. As linhas de comando para a chamada do compilador e do vinculador podem ser encontradas na caixa de diálogo de opções ou no log de construção que está escrito no diretório intermediário.
Yakov Galka

8

Se você estiver executando o MSBuild, poderá definir o sinalizador / v: diag.


Como eu executaria o MSBuild?
Geo

inicie o prompt de comando do visual studio (está no menu Iniciar) e execute o projeto do visual studio com: MSBuild {ProjectName}
Joe

por exemplo, MsBuild myProject.csproj
Joe

Vejo chamadas MSBuild vcbuild, mas vcbuild não mostra os sinalizadores / opções que está usando.
Geo

Esta é a resposta adequada, creio. Apenas desligar a supressão de vários banners ainda não produz tudo. Em particular, a etapa de compilação de recursos era o que eu procurava.
João

5

No Visual Studio, vá para o seu projeto, clique com o botão direito sobre ele e selecione as propriedades. No Linker, há uma opção de linha de comando. Lá você tem todas as opções e pode adicionar suas opções personalizadas. Adicione /VERBOSEe, ao vincular, o Visual Studio mostrará muito mais informações.


1
Mostra mais informações, mas não mostra as ferramentas que estão sendo chamadas para compilar.
Geo

2
O Visual Studio tem uma ferramenta de criação chamada nmake. Você pode exportar seu projeto para esses makefiles e compilá-lo a partir de um console do DOS msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx . Da última vez que fiz algo semelhante (mas usei o CMake para gerar os makefiles nmake), todos os comandos foram impressos na tela do console.
javier-sanz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.