Подтвердить что ты не робот

Фатальная ошибка C1001: Внутренняя ошибка произошла в компиляторе

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

c:\codavs05\hpsw-sc\ovpacc\tools\codaaccesstest\coda_access.cpp(1572): fatal error C1001: An internal error has occurred in the compiler.

(compiler file 'f:\dd\vctools\compiler\utc\src\p2\sizeopt.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 года

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

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

Ответ 10

Я получил этот код с кодом во время рефакторинга с отсутствием заботы (и с шаблонами, это случай, который делал 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>) {
        ...
    }
}

Ответ 11

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

Ответ 12

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