Внутренняя ошибка компилятора visual studio 2019

SUGGESTIONS

Please:

  1. Update your post with exact error text (if available)

  2. Post your question to https://developercommunity.visualstudio.com/ as well

  3. See if any of these links are applicable:

  • https://developercommunity.visualstudio.com/content/problem/710576/visual-studio-2019-1622-fatal-error-c1001-in-32-bi.html
  • https://social.msdn.microsoft.com/Forums/vstudio/en-US/165975b4-35e9-4b40-9524-e656a4e2f359/fatal-error-c1001-an-internal-error-has-occurred-in-the-compiler?forum=visualstudiogeneral
  • https://developercommunity.visualstudio.com/content/problem/664162/ice-on-valid-code-after-upgrading-to-1620.html
  1. One way to notify Microsoft Support like this:

    MSVS > Help > Send Feedback > Report a Problem

  2. Here is a complete list of MSVS support options: https://visualstudio.microsoft.com/vs/support/


Update:

Thank you for copying/pasting the exact error message:

1>d:\work\[...](82): fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\utc\src\p2\main.c', line 187)

This is the MSVS file causing the error C1001: vctools\compiler\utc\src\p2\main.c

This is an existing Microsoft trouble report:

https://developercommunity.visualstudio.com/content/problem/210332/c1001-internal-error-compiler-file-fddvctoolscompi.html

Hi Roger,

Thanks for reporting the bug, and including an excellently
self-contained repro, so quickly. I’ve investigated and this seems to
be the same issue as
https://developercommunity.visualstudio.com/content/problem/209359/ice-with-fpfast-in-156-and-msvc-daily-1413263051-p.html.

I’m closing this as a duplicate just so that people can collect
context and work-around advice in the same location, and when the
other bug is marked fixed, you can assume that this one is too.

Thanks again,

Aaron Gorenstein
Software Engineer II

Searching for this error message/source module, I also found this: https://stackoverflow.com/a/63435683/421195

Please post back if either of these work for you!

  • Remove From My Forums
  • Question

  • Hello

    I used Microsoft Visual Studio only one time a few years ago and I just made a small DLL. Today I tried to recompile the same library with the final scope to rebuild it on 64 bit but the surprise was that I couldn’t even recompile it on 32 bit any more because
    of the error: «Fatal Error C1001 — An internal error has occurred in the compiler.» I tested on Microsoft Visual Studio 2019.

    I looked online but I don’t know what is the problem, the error is too generic.

    I tried to run Vizual Studio 2019 as administrator — as sugested in another post here and I tried to delete the «#pragma once» as sugested

    here but the error is the same.

    I copied the project here.

    Thank you

    • Edited by

      Wednesday, October 2, 2019 10:51 AM

Answers

  • Hi Victorqedu123,

    Welcome to MSDN forum.

    I have tried to build the project you share. But it could build successfully in Visual Studio 2019 16.3.2 on my side.

    My Environment: Windows 10 1903, Visual Studio enterprise 2019 16.3.2, Visual Studio Ultimate 2013 with Update 5.

    Not sure if it is related to compatibility between old VS and new system, please download latest
    Visual studio 2013, then re-build it with win32
    bit.

    BTW, if you need to build it in visual studio 2019, please go to project properties page, then change platform toolset to «visual studio 2013(v120)», it will call VS2013 build tool to compile your project.

    Any feedback will be expected.

    Best Regards,

    Dylan 


    MSDN Community Support Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any
    compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    • Marked as answer by
      Victorqedu123
      Thursday, October 3, 2019 1:54 PM

Sergey Vasiliev

  • Проблема
  • Решения
    • Использование макроса ‘PVS_STUDIO’
    • Использование рабочей версии компилятора

Несколько раз нам писали пользователи, у которых перестал работать анализ части проектов. Общей особенностью было использование директивы ‘#import’ в проблемных файлах. В данной заметке будет кратно описано, с чем связана проблема, и что делать для возобновления работы анализа.

Примечание. Данная заметка актуальна только для Windows при использовании компилятора ‘cl.exe’ для препроцессирования.

Проблема

Для поиска ошибок в коде, написанном на языках C, C++, PVS-Studio использует препроцессированные файлы. Для их получения анализатор полагается на сторонние инструменты, в частности – на компилятор cl.exe. Для указания необходимости генерации препроцессированных файлов для cl.exe используется флаг ‘/P’.

Проблема заключается в том, что, начиная с версии Visual Studio 15.8 (и соответствующей версии Visual C++ — VC++ 2017 version 15.8 v14.15 toolset), при запуске cl.exe с флагом ‘/P’ на файлах, содержащих директиву ‘#import’, в компиляторе возникает ошибка.

При этом сборка (когда компилятору не передаётся флаг ‘/P’) проходит успешно. Со стороны это может выглядеть примерно так: проект успешно собирается, но анализатор PVS-Studio не работает. Вывод анализатора на проблемных файлах будет примерно следующим:

c:program files (x86)microsoft visual 
studio2017communityvctoolsmsvc14.16.27023includecomdef.h: 
fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'msc1.cpp', line 1518)
Internal Compiler Error in c:program files (x86)microsoft visual 
studio2017communityvctoolsmsvc14.16.27023binhostx64x64cl.exe

Если вы столкнулись с такой проблемой, скорее всего, ваш проект использует Platform Toolset V141, и проблема возникла после обновления Visual Studio и соответствующих пакетов Visual C++ (и компилятора, соответственно) на более свежую версию. В итоге сборка проекта всё также проходит успешно, а вот анализ – нет.

Чтобы убедиться, что проблема действительно в компиляторе, можете попробовать выставить в настройках соответствующего проекта флаг ‘/P’ и выполнить сборку. Выставление флага: Properties|C/C++|Preprocessor|Preprocess to a File -> Yes(/P).

Кстати, про эту проблему есть отдельная тема на форуме Visual Studio: https://developercommunity.visualstudio.com/content/problem/313306/vs2017-158-internal-compiler-error-msc1cpp-line-15-1.html

Решения

К сожалению, описанная проблема до сих пор актуальна, и будет исправлена, скорее всего, только в следующем релизе Visual Studio. Однако, вы можете продолжать использовать PVS-Studio для проверки проектов, затронутых данной проблемой, с помощью небольшого workaround’а.

Использование макроса ‘PVS_STUDIO’

При вызове компилятора для препроцессирования анализатором задаётся дополнительный макрос – ‘PVS_STUDIO’. Используя этот макрос, вы можете обернуть проблемные строки кода директивой #ifdef — это позволит игнорировать их препроцессору, но при этом не затронет компиляцию кода. Как минимум, следует обернуть саму директиву ‘#import’:

#if !defined(PVS_STUDIO)
 #import
 ...
#endif

Обратите внимание, что в таком случае обёрнутая в директиву часть кода не попадёт в результирующие препроцессированные файлы. В большинстве случаев данная правка не должна повлиять на результаты анализа.

Использование рабочей версии компилятора

Примечание. Данная проблема была решена в версии компилятора в составе Visual Studio (2017) 15.9.14.

Вы можете откатиться на более старую версию компилятора (или более новую), в которой описанной выше проблемы нет (напоминаю, она появилась, начиная с VC++ 2017 Version 15.8 v14.15 toolset).

Заметьте, что Visual Studio 2017 позволяет устанавливать на систему несколько экземпляров Platform Toolset V141, что позволит, при желании, не уменьшать версию Platform Toolset в проекте.

0613_ImportCompilerInternalError_ru/image1.png

Указать необходимые для использования версии компилятора можно в файлах <VsInstanceDir>VCAuxiliaryBuildMicrosoft.VCToolsVersion.default.[txt|props], где <VsInstanceDir> — установочная директория конкретного выпуска Visual Studio.

Присылаем лучшие статьи раз в месяц

При компиляции на платформе x64 я получаю следующую ошибку:

c:codavs05hpsw-scovpacctoolscodaaccesstestcoda_access.cpp(1572): fatal error C1001: An internal error has occurred in the compiler.

(compiler file 'f:ddvctoolscompilerutcsrcp2sizeopt.c', line 55)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information

------ Build started: Project: asyncexample, Configuration: Release Win32 ------

Если я изменю настройки на файл препроцессора (Да), я не получу никакой ошибки.

О моей среде: Обновление Microsoft Visual Studio 2005 до 2010

Пожалуйста помоги.

14 ответы

У меня была эта проблема с VS2015 при локальной сборке в Windows.

Чтобы решить эту проблему, я удалил свою папку сборки (выходной каталог, как показано в свойствах/общих) и пересобрал проект.

Кажется, это всегда помогает, когда во время сборки случаются странные вещи.

ответ дан 02 авг.

Я сталкивался с этой ошибкой много раз в VC++. Выполните следующие шаги. Они иногда помогали мне с этой проблемой:

  1. Взгляните на точное местоположение, указанное ошибкой компилятора.
  2. Найдите любые внешние типы или классы, используемые в этом месте.
  3. Измените порядок «включить путь» для тех файлов, которые были найдены на шаге 2, и перестройте решение.
  4. надеюсь на помощь!!!!

ответ дан 27 окт ’19, 12:10

Я получаю ту же ошибку с VC2012. Настройка свойств проекта Optimization на Disabled (/Od) решила проблему.

Создан 03 фев.

В моем решении я удалил выходной DLL-файл проекта и перестроил проект.

ответ дан 27 апр.

Я столкнулся с той же ошибкой и потратил довольно много времени на поиск проблемы. Наконец я обнаружил, что функция, на которую указывала ошибка, имеет бесконечный цикл while. Исправил и ошибка ушла.

ответ дан 07 мар ’14, в 01:03

В моем случае использовалась статическая лямбда-функция с QStringList аргумент. Если бы я прокомментировал регионы, где QStringList использовался скомпилированный файл, иначе компилятор сообщил об ошибке C1001. Изменение лямбда-функции на нестатическую решило проблему (очевидно, другие варианты могли заключаться в использовании глобальной функции в анонимном пространстве имен или статическом частном методе класса).

ответ дан 26 апр.

Я получил эту ошибку, используя библиотеку boost с VS2017. Очистка решения и его восстановление решили проблему.

Создан 27 фев.

У меня также была эта проблема при обновлении с VS2008 до VS2010.

Чтобы исправить, мне нужно установить патч VS2008 (KB976656).

Может есть аналогичный патч для VS2005?

Создан 09 янв.

Я получил ту же ошибку, но с другим файлом, указанным в сообщении об ошибке, в сборке VS 2015/x64/Win7. В моем случае это был файл main.cpp. Исправить это для меня было так же просто, как перестроить все (и найти что-то еще, пока обрабатывается миллион с лишним строк кода).

Обновить: оказывается, причина в том, что мой жесткий диск выходит из строя. После того, как другие симптомы побудили меня запустить chkdsk, я обнаружил, что большинство поврежденных секторов, которые были заменены, находились в файлах .obj, .pdb и других файлах, созданных компилятором.

Создан 07 сен.

Я получил это с кодом во время рефакторинга с отсутствием осторожности (и с шаблонами, в этом случае это было то, что сделало ICE, а не обычную ошибку времени компиляции)

Упрощенный код:

void myFunction() {
    using std::is_same_v;
    for (auto i ...) {
       myOtherFunction(..., i);
    }
}

void myOtherFunction(..., size_t idx) {
    // no statement using std::is_same_v;
    if constexpr (is_same_v<T, char>) {
        ...
    }
}

Создан 27 ноя.

У меня была эта ошибка, когда я компилировал цель x64. Переход на x86 позволил мне скомпилировать программу.

ответ дан 17 окт ’17, 15:10

Иногда помогает изменение порядка кода. Однажды у меня была эта ошибка в Visual Studio 2013, и это было решено только путем переупорядочения членов класса (у меня был член перечисления, несколько членов строк и еще несколько членов перечисления того же класса перечисления. Он скомпилирован только после того, как я поставил члены перечисления сначала).

Создан 12 июн.

В моем случае это вызывало проблему:

std::count_if(data.cbegin(), data.cend(), [](const auto& el) { return el.t == t; });

Изменение auto к явному типу устранила проблему.

Создан 13 ноя.

Была аналогичная проблема с Visual Studio 2017 после перехода на С++ 17:

boost/mpl/aux_/preprocessed/plain/full_lambda.hpp(203): fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'msc1.cpp', line 1518)
1> To work around this problem, try simplifying or changing the program near the locations listed above.

Решено с помощью Visual Studio 2019.

Создан 15 янв.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

visual-c++
compiler-construction
64-bit

or задайте свой вопрос.

@EwoutH — I have a hack (https://github.com/alicevision/AliceVision/compare/develop…julianrendell:vs2019-hacks?expand=1) that has let me build AliceVision. It also has a fix to work with latest cctags. This is most definitely not a fix; I just brute force copied the code into the two places where it was being called, and I think I’ve also pushed a function from the .h -> .cpp. Not 100% sure if this last piece is needed, but it’s compiling, I’m not a C++ expert, and I’m short on time :-)

I’m new to building meshroom; and rusty re building on Windows. My notes for what I’ve done so far: https://gist.github.com/julianrendell/da6372201234d943d3e4f77e43674fd2 — in case they’re useful to you.

@fabiencastan — I think it has something to do with the arguments being references. Not really sure, going on some vague pattern recognition from reading random google searches for this internal compiler error.

@smedellin90

The project was built on my system using boost_1_60 and cmake version 3.14.0. The prompt printed out that the build was successful, and I am able to open the project on Visual Studio 2019.

When I go to compile example_client.cpp , I get the following compiler error:

1>------ Build started: Project: example_server, Configuration: Debug x64 ------ 1>example_server.cpp 1>Unknown compiler version - please run the configure tests and report the results 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: An internal error has occurred in the compiler. 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: (compiler file 'd:\agent\_work\3\s\src\vctools\Compiler\CxxFE\sl\p1\c\types.c', line 4589) 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: To work around this problem, try simplifying or changing the program near the locations listed above. 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: Please choose the Technical Support command on the Visual C++ 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: Help menu, or open the Technical Support help file for more information 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(93): message : see reference to class template instantiation 'OpcUa::has_begin_end<T>' being compiled 1>Done building project "example_server.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I have tried to fix by adjusting the last if statement of visualc.hpp to

if (MSC_VER > 1922)

instead of

if (MSC_VER > 1900)

Nevertheless, I still get the error listed above.

@AdmiralPellaeon

I also have problems with the variant. Can’t compile the library anymore:

2>D:\projects\cpp\freeopcua-master-2019-08-21\include\opc/ua/protocol/variant.h(87,1): error C1001: Interner Compilerfehler.

@614ir

The project was built on my system using boost_1_60 and cmake version 3.14.0. The prompt printed out that the build was successful, and I am able to open the project on Visual Studio 2019.

When I go to compile example_client.cpp , I get the following compiler error:

1>------ Build started: Project: example_server, Configuration: Debug x64 ------ 1>example_server.cpp 1>Unknown compiler version - please run the configure tests and report the results 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: An internal error has occurred in the compiler. 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: (compiler file 'd:\agent\_work\3\s\src\vctools\Compiler\CxxFE\sl\p1\c\types.c', line 4589) 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: To work around this problem, try simplifying or changing the program near the locations listed above. 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: Please choose the Technical Support command on the Visual C++ 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(87,1): error C1001: Help menu, or open the Technical Support help file for more information 1>C:\Users\smedellin\Documents\opcua\freeopcua\include\opc/ua/protocol/variant.h(93): message : see reference to class template instantiation 'OpcUa::has_begin_end<T>' being compiled 1>Done building project "example_server.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I have tried to fix by adjusting the last if statement of visualc.hpp to

if (MSC_VER > 1922)

instead of

if (MSC_VER > 1900)

Nevertheless, I still get the error listed above.

So, did you solve it? I am having exactly the same problem :/

@AdmiralPellaeon

Yes, I managed to compile it, but that’s some months ago. As far as i remember I didn’t change the code. Perhaps you can try it with a newer version of boost.

@614ir

Okey, thank you for the response

________________________________
From: AdmiralPellaeon <notifications@github.com>
Sent: Monday, May 11, 2020 10:28 AM
To: FreeOpcUa/freeopcua <freeopcua@noreply.github.com>
Cc: 614ir <ir_614@hotmail.com>; Comment <comment@noreply.github.com>
Subject: Re: [FreeOpcUa/freeopcua] Visual Studio 2019 C1001: Internal Error has occurred (#338)

Yes, I managed to compile it, but that’s some months ago. As far as i remember I didn’t change the code. Perhaps you can try it with a newer version of boost.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#338 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/APRDI44UCA3LCIIQH4RUIMTRQ6ZK5ANCNFSM4IH6QVPA>.

@AdmiralPellaeon

I checked my files. Attached you find all src files with have a newer time stamp compared to the check out solution from git.
And I definetly use much newer version of boost.
changed_files.zip

Понравилась статья? Поделить с друзьями:
  • Внутренняя ошибка 34623 мапинфо
  • Внутренняя ошибка visio 3400 действие 1005
  • Внутренняя ошибка 2932 c windows installer
  • Внутренняя ошибка ecu
  • Внутренняя ошибка ккт err 0х88 ext 0x0a