Вопрос по c1001, visual-c++ – VC ++ Внутренняя Ошибка Компилятора

10

Я получаю следующую ошибку, может кто-нибудь помочь мне, как это исправить.

fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'f:\vs70builds\3077\vc\Compiler\CxxFE\sl\P1\C\pdbmgr.cpp', line 149) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information

@Neil: Не так ленив. Типично нарушать грамматику языка и получать сообщения об ошибках компилятора. Нечасто видеть сообщение о том, что компилятор фактически отказывается компилировать совершенно правильный код. sharptooth
Да, очень реальный вопрос, особенно если вы были в такой ситуации несколько раз. sharptooth
Почему это проголосовало за / закрытие? Мне кажется, это справедливый вопрос, хотя на него нет хорошего ответа jalf
Можете ли вы придумать небольшой сегмент кода, который воспроизводит этот конкретный C1001? Кроме того, это появляется с более новыми версиями Visual Studio? LThode

Ваш Ответ

3   ответа
4

Компилятор не может сгенерировать правильный код для конструкции, возможно, из-за комбинации выражения и опции оптимизации. Попробуйте удалить один или несколько параметров оптимизации и перекомпилировать функцию, содержащую строку, указанную в сообщении об ошибке. Вероятно, вы можете решить проблему, удалив один или несколько параметров оптимизации. Чтобы определить, какой параметр является ошибочным, удаляйте параметры по одному и перекомпилируйте, пока сообщение об ошибке не исчезнет. Наиболее ответственные параметры: / Og, / Oi и / Oa. После того, как вы определили, какая опция ответственна, вы можете отключить ее, используя прагму оптимизации для функции, в которой происходит ошибка, и продолжать использовать эту опцию для остальной части модуля. База знаний Microsoft содержит больше информации о C1001; увидетьhttp://support.microsoft.com/default.aspx?scid=kb;en-us;134650.

1

идимой причины. Даже MSDN рекомендует пойти туда и поиграть с прагмами оптимизации там. Вы должны определить, какая конструкция вызывает это указание, и каким-то образом переписать его. Или вы можете использовать более новую версию VC ++.

3

ты ввернут. Вы сделали что-то, что показало ошибку в компиляторе. Поиграйте с настройками оптимизации, #pragmas и возитесь с вашим кодом, пока он не заработает.

И, возможно, отправьте отчет об ошибке на connect.microsoft.com

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