Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sintomas

Quando cria um programa utilizando o Microsoft Visual C++ 2013, o programa falha e recebe uma excepção de "Instrução ilegal". Isto ocorre porque algumas funções de biblioteca de símbolos matemáticos de vírgula flutuante no Runtime do Visual C++ 2013 x64 C (CRT) não verificar correctamente se determinadas instruções AVX e FMA3 estão disponíveis antes das funções de tentarem utilizá-los. Se as instruções não estão disponíveis para utilização, chamadas para estas funções causam uma excepção de instrução ilegal (0xc000001d). Funções afectadas incluem o registo, log10 e pow e outros.

Este problema é mais provável nos seguintes cenários:

  • Uma versão antiga do sistema operativo Windows que não suporta AVX Estado guardar (por exemplo, o Windows Vista) se é utilizado num computador que suporta o conjunto de instruções de AVX

  • Se guardar de estado AVX seja explicitamente desactivada na configuração de arranque do sistema operativo

  • No ambiente de pré-instalação do Windows (Windows PE)

    Nota O Windows PE não suporta a poupança de estado AVX.


Este problema foi comunicado no Microsoft Connect:

x64 função de log utiliza a instrução de AVX vpsrlq independentemente do sistema operativo (para que esta falha no Vista x64)

RTM de 2013 do Visual Studio: Erro de geração para obter instruções de AVX2 de código C++ x64

Causa

Este problema ocorre porque o tempo de execução do Visual C++ 2013 x64 C não se verifica se o sistema operativo suportar AVX Estado guardar antes de tentar executar instruções AVX ou FMA3.

Resolução

Se todos os binários de C++ afectados criados utilizando o Visual C++ 2013 utilizam a DLL de tempo de execução C (msvcr120.dll), instale o actualizada Microsoft Visual C++ 2013 Redistributable – 12.0.40660.0 ou uma versão posterior.

Se os binários de C++ afectados ligar estaticamente o Visual C++ 2013 C Runtime, terá de actualizar a instalação do Visual Studio 2013 instalando a correcção 3174417 e a reconstrução e Reimplementar binários afectados.









Nota Este problema não afecta as versões mais antigas do Visual C++ C tempo de execução (Visual C++ 2012 e versões anteriores). O problema foi corrigido antes da disponibilização inicial do CRT Universal que é utilizada pelo Visual C++ 2015.

Centro de Transferências da Microsoft

Para actualizar o estaticamente ligadas Visual C++ 2013 tempo de execução C, a correcção 3174417 é disponibilizada como uma actualização de transferir apenas e não é distribuída através do Windows Update. Está disponível no Web site da Microsoft Download Center:

Download Transferir o pacote agora.

Para actualizar dinamicamente ligadas Visual C++ 2013 C Runtime DLLs, um actualizado redistribuível está disponível. Para mais informações, consulte o seguinte artigo na Microsoft Knowledge Base:

Actualização 3179560 para 2013 do Visual C++ e Visual C++ pacote redistribuível

Solução alternativa

Para contornar este problema, desactive a FMA3 na biblioteca de matemática se são afectados por este problema. É possível consultar se o sistema suporta instruções de AVX, chamar GetEnabledXStateFeatures e desactivando AVX no CRT explicitamente ao chamar _set_FMA3_enable(0).

Para mais informações, consulte trabalhar com o contexto de XStateno Web site da MSDN.

A função _set_FMA3_enable(0) é declarada por < math.h >, e está disponível apenas quando criar para x64. (Este problema afecta apenas o x64 bibliotecas.) Isto faz com que a biblioteca de matemática reverter para as implementações de não FMA3 a utilizar.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×