Partilhar via


MSB8040 código de diagnóstico

Este artigo descreve o código de erro MSB8040.

Texto da mensagem

MSB8040: Spectre-mitigated libraries are required for this project.

Descrição

Este erro ocorre quando o projeto requer bibliotecas atenuadas por Spectre (C/C++>Spectre Mitigation não está definido como Disabled), mas as bibliotecas não estão instaladas. Para obter mais informações, consulte Mitigações do Spectre no Microsoft Foundation Classes (MFC).

Resolução

Primeiro, determine se deseja implementar a mitigação do Spectre e, em seguida, siga as etapas necessárias para atualizar sua instalação para resolver o erro.

Desativar a mitigação do Spectre

Se você não quiser usar a mitigação do Spectre, desative a opção no Visual Studio. Para compilações de linha de comando, confirme se você não está usando a /Qspectre opção de compilador ou suas variantes /Qspectre-load e /Qspectre-load-cf.

Para desativar a opção no Visual Studio, execute estas etapas:

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Propriedades (Alt+Enter).
  2. Na caixa de diálogo Páginas de propriedades do seu projeto, selecione a página de propriedades de configuração>C/C++>Code Generation .
  3. Defina a propriedade Spectre Mitigations como Disabled.
  4. Selecione OK para salvar as alterações.

Captura de tela que mostra como desabilitar mitigações do Spectre no Visual Studio.

Ativar a mitigação do Spectre

Se você decidir usar a mitigação do Spectre, certifique-se de que sua instalação inclua os componentes corretos do compilador e da biblioteca com suporte para a mitigação do Spectre.

Para atualizar a instalação, siga estes passos:

  1. Abra o instalador do Visual Studio.
  2. Selecione o botão Modificar ao lado da versão do Visual Studio que você usa.
  3. Selecione a guia Componentes individuais na parte superior da caixa de diálogo.
  4. Na caixa Pesquisar componentes , digite Spectre v14.2.
  5. Na secção Compilador, ferramentas de compilação e tempo de execução, certifique-se de que a opção MSVC v142... Spectre-mitigated libs está selecionada para todas as arquiteturas alvo da compilação.
  6. Para utilizar ATL ou MFC, deve-se também selecionar as bibliotecas, como C++ MFC para as ferramentas de compilação v142 mais recentes com Mitigações Spectre (ou a versão apropriada para o seu ambiente de desenvolvimento) para todas as arquiteturas que o projeto de compilação pretende abranger. Para obter mais informações, consulte Instalar bibliotecas MFC e ATL.
  7. Selecione Modificar para instalar os componentes selecionados.

Captura de tela que mostra como atualizar a instalação para incluir a biblioteca de mitigações do Spectre.

Especificar opções do compilador

Caso ative as mitigações do Spectre, assegure-se de especificar uma opção de compilador /Qspectre. Para obter mais informações, consulte a opção de compilador /Qspectre .

Para especificar a opção do /Qspectre compilador, siga estas etapas:

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Propriedades (Alt+Enter).

  2. Na caixa de diálogo Páginas de propriedades do seu projeto, selecione a página de propriedades de configuração>C/C++>Code Generation .

  3. Defina a propriedade Spectre Mitigations para um dos seguintes valores:

    • Ativado
    • Todas as cargas para /Qspectre-load
    • Todas as cargas de fluxo de controle para /Qspectre-load-cf
  4. Selecione OK para salvar as alterações.

Aplica-se a

Todas as versões do MSBuild