фатальная ошибка C1001: ВНУТРЕННЯЯ ОШИБКА КОМПИЛЯТОРА (файл компилятора «msc1.cpp», строка 1794)

Я попытался скомпилировать проект с помощью Visual Studio 6 SP6 и получил следующее:

usbcore.h(18) : fatal error C1001: INTERNAL COMPILER ERROR
    (compiler file 'msc1.cpp', line 1794)
     Please choose the Technical Support command on the Visual C++
     Help menu, or open the Technical Support help file for more information

Строка 18 файла usbcore.h содержит директиву include:

18: #include "usbiface.h"

Пустой или несуществующий usbiface.h выдает ту же ошибку. Я прокомментировал эту строку и получил ту же ошибку, но для следующего включаемого файла.

Подводя итог: ошибка компилятора возникает для каждой директивы #include, которая ссылается на общие заголовки проекта.


person Sergey Podobry    schedule 03.07.2013    source источник
comment
Я понимаю, что вы, вероятно, долго пытались понять это. Но если вы собираетесь задать вопрос с конкретной целью ответить на него самостоятельно, я хотел бы увидеть немного больше деталей, особенно в вопросе. -1 до тех пор.   -  person John Dibling    schedule 03.07.2013
comment
Также голосование за закрытие по существу как неясное. Как и было задано, для ответа на этот вопрос недостаточно информации.   -  person John Dibling    schedule 03.07.2013
comment
@John Dibling: Каких деталей вам не хватает? Я хочу поделиться информацией об ошибке компилятора, чтобы сэкономить чье-то время, потому что я потратил день, пытаясь понять это.   -  person Sergey Podobry    schedule 04.07.2013


Ответы (5)


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

Командная строка компилятора: CPP /nologo /MT /W3 /GX /Zi /Od /I "$(ZLIB_PATH)" /I "..\headers"

и ZLIB_PATH имел обратную косую черту. Удаление обратной косой черты решило проблему.

person Sergey Podobry    schedule 03.07.2013

В моем случае изменение тега WholeProgramOptimizationtrue с true на false устранило проблему.

person user2709682    schedule 16.12.2014

Я столкнулся с этой проблемой, когда оставил скобки в определении ctor. Это была глупая ошибка, но проверить все эти сложные исправления было очень утомительно. Поэтому я просто предлагаю это как возможность. Я бы не ожидал внутренней ошибки компилятора.

person dougM    schedule 29.01.2016
comment
То же самое здесь для меня, но для деструктора. Не забудьте скобки для них обоих... - person SiZiOUS; 21.04.2018

В моем случае (VC6.0 SP6a) это связано с запутанным оператором using. Кажется, компилятор не может определить, определяю ли я Foo::Bar или Bar (в глобальном пространстве имен).

namespace Foo {
    class Bar;
}

using Foo::Bar;

class Bar {
};
person raymai97    schedule 27.07.2017

В моем случае мне пришлось отключить параметр «Создать информацию для просмотра», чтобы избежать этого. (Настройки проекта \ C/C++ \ Общие)

person Alexandr Chervinskiy    schedule 23.10.2020