C1001 внутренняя ошибка в файле компилятора

Обновлено: 04.07.2024

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

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

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

Я попытался включить gsl.h для рук специально в свой VS2013. Когда я пытаюсь построить проект, он говорит: c:\users\njain6\documents\visual студия 2013\projects\gcldemo\string_span.h( 336): фатальная ошибка C1001: в компиляторе произошла внутренняя ошибка. Шаги, которым я следовал: Я скачал файлы.

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

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

Это всегда помогает, когда во время сборки происходят странные вещи.

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

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

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

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

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

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

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

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

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

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

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

Когда я строю проект по visual studio 2013, он работает правильно. Но после сборки с visual studio 2015 я сталкиваюсь со следующими ошибками. Как я могу решить эту проблему? фатальная ошибка C1001: в компиляторе произошла внутренняя ошибка. Ошибка командной строки D8040: ошибка создания или.

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

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

В моем случае это было причиной проблемы:

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

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

Решается с помощью Visual Studio 2019.

Похожие вопросы:

У меня есть проблема, когда я строю проект в Visual Studio 2010 для 64bit. Я не смог построить для 64-битной библиотеки boost, я получаю ниже ошибку. Я могу строить для 32-битных, но не для.

Я получаю следующую ошибку при компиляции в режиме выпуска. 1>d:\users\eyal\projects\code\yalla\core\src\runbox\win32\window.cpp : fatal error C1001: An internal error has occurred in the.

Я попытался включить gsl.h для рук специально в свой VS2013. Когда я пытаюсь построить проект, он говорит: c:\users\njain6\documents\visual студия 2013\projects\gcldemo\string_span.h( 336).

Когда я строю проект по visual studio 2013, он работает правильно. Но после сборки с visual studio 2015 я сталкиваюсь со следующими ошибками. Как я могу решить эту проблему? фатальная ошибка C1001.

Я только что обновил Microsoft Visual Studio Enterprise 2015 с обновления 2 до обновления 3 и теперь получаю следующую ошибку: фатальная ошибка C1001: в компиляторе произошла внутренняя ошибка.

У меня есть программа, которая решает головоломки судоку, и я заставил ее работать последовательно, но теперь я пытаюсь распараллелить ее с помощью openMP. Функция solvePuzzle() включает в себя.

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

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

  • возможный дубликат внутренней ошибки компилятора VC ++
  • Еще одна ошибка компилятора, но в другом месте. Не точный дубликат.
  • @venkat - Может быть, мы увидим код около строки 1572?
  • if (t2.GetSecond ()! = sec || t2.GetMillisecond ()! = milli) здесь я получаю ошибку

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

Это всегда помогает, когда во время сборки происходят странные вещи.

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

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

Я получаю такую ​​же ошибку с VC2012. Установка для свойств проекта значения "Отключено" (/ Od) решила проблему.

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

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

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

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

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

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

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

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

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

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

В моем случае это было причиной проблемы:

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

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

Когда я использую VS2017 15.8.4 и Fastbuild 0.96 для распределенной сборки Unreal Engine 4.2, я получил следующую ошибку:

4>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\comdef.h : fatal error C1001: An internal error has occurred in the compiler. 4>(compiler file 'msc1.cpp', line 1518) 4> To work around this problem, try simplifying or changing the program near the locations listed above. 4>Please choose the Technical Support command on the Visual C++ 4> Help menu, or open the Technical Support help file for more information

Я обнаружил, что эта проблема возникла в последней версии Visual Studio для распределенной сборки, потому что: 1. У меня не было этой проблемы в VS2017 15.7.6, которая является более старой версией. 2. Нет проблем при отключении распределенной сборки

Я обнаружил ту же проблему в форум визуальной студии, но похоже, что они не предоставили решения для VS2017 15.8.4. Есть ли решение для VS2017 15.8.4?

В вашем посте нет вопросов. Чего ты от нас ждешь? Предложение, данное в связанном документе, - обновить до 16.0 или вы можете понизить до 15.7.6. Почему это для вас неприемлемо?

Я видел это в компиляторах MS с 1995 года. Вы не нашли ничего шокирующего. MS стало лучше, но иногда вы все равно пишете код, который ставит компилятор в тупик. Я видел эквивалент GCC несколько раз, но да - не так часто.

@СМ. Но здесь его код MS, который ставит в тупик его собственный компилятор.

@john ага. вы, вероятно, упомянули об этом в каком-то неожиданном контексте, которого не предвидели авторы компилятора. А может что-то где-то переливается .

Распределенные сборки могут играть трюки с предварительно скомпилированными заголовками и т. д. - это может обременить компилятор. Я предлагаю попытаться выяснить разницу между единицей перевода (наблюдаемой компилятором), когда она строится нормально, и быстрой сборкой.

При компиляции в режиме выпуска я получаю следующую ошибку.

Я использую VS2015 Update 2 RC.

Я не уверен, но, может быть, это ошибка в оптимизаторе?

Код, вызывающий его, следующий:

NativeWindow - это собственное окно любой ОС.

Чтобы сделать заметку.

Если я удалю наследование и заменим его чем-то вроде этого.

Все будет хорошо!

Что, по-видимому, вызывает такое поведение, является вывод NativeControl из NativeWindow.

Шаги, чтобы воспроизвести его следующим образом:

  1. Удалите объявление dtor и определения из класса Window.
  2. Попробуйте построить (не перестроить).
  3. Компилятор будет жаловаться и давать вам кучу ошибок.

1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\memory(1194): error C2338: can't delete an incomplete type 1> 1> 1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\memory(1195): warning C4150: deletion of pointer to incomplete type 'Yalla::Window::NativeControl'; no destructor called 1>
d:\Users\Eyal\Projects\Code\Yalla\core\src\runbox\include\window.h(13): note: see declaration of 'Yalla::Window::NativeControl' 1>
window.cpp 1> 1>Build FAILED.

  1. Добавьте dtor в класс Window.
  2. Снова создать (не перестроить).
  3. В этот момент компилятор должен пожаловаться на следующую ошибку: «фатальная ошибка C1001: внутренняя ошибка произошла в компиляторе».

The interesting part is that doing rebuild seems to fix the problem!

То, что я хочу достичь, в основном имеет фактическую реализацию NativeWindow в другом файле, в основном для простоты и не столько о повторном использовании.

Я полагаю, что вместо того, чтобы делать это в наследовании , что может смутить шаблон unique_ptr , я также могу это сделать с помощью композиции и выставить экземпляр NativeWindow через getter, а может работать, но вопрос в том, есть ли лучшие способы сделать это?

I'm relearning C++ after a very long time I didn't touch it so if some of the things I'm doing don't make sense, please tell me about it!

Читайте также: