Я попытался скомпилировать проект с помощью 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
директива, которая относится к общим заголовкам проекта.
В моем случае изменение тега WholeProgramOptimizationtrue с true на false решило проблему.
Я выяснил, что вызвало эту ошибку. Один из путей включения (передаваемый компилятору с ключом / I) имел обратную косую черту.
Компилятор cmdline: CPP /nologo /MT /W3 /GX /Zi /Od /I "$(ZLIB_PATH)" /I "..\headers"
а также ZLIB_PATH
был задний ход. Удаление обратной косой черты решило проблему.
Я столкнулся с этой проблемой, когда оставил скобки вне определения ctor. Это была глупая ошибка, но было очень сложно проверить все эти сложные исправления. Так что я просто предлагаю это как возможность. Я не ожидал внутренней ошибки компилятора.
В моем случае (VC6.0 SP6a) это связано с using
заявление. Кажется, компилятор не может определить, определяю ли я Foo::Bar
или же Bar
(в глобальном пространстве имен).
namespace Foo {
class Bar;
}
using Foo::Bar;
class Bar {
};