Внутренняя ошибка компилятора visual studio
Однако при попытке сузить его до одного файла (который автоматически открывается при загрузке решения) я не смог воспроизвести проблему. Теперь, когда все файлы снова открыты, проблема не возникает . Таким образом, похоже, что это исправлено - хотя это происходило раньше, и в конце концов проблема вернулась.
Я думаю, что это связано с одним из пользовательских элементов управления с элементами управления DevExpress на нем - когда возникает ошибка, дизайнер отображает ошибку. Хотя в настоящий момент я не могу воспроизвести это, чтобы подтвердить это.
На данный момент это перестало происходить, поэтому я не могу воспроизвести это.
задан 01 июля '11, 13:07
Это случается все время, время от времени? Вы определили, какой код в вашем проекте вызывает сбой компилятора? - vcsjones
еще нет, это начало происходить внезапно. Единственное изменение - это обновления Windows. кажется, случается время от времени. перезапуск vs не убирает его, перезагрузка компьютера делает. - Mr Shoubs
Также было бы полезно знать, какую версию / сборку вы используете. Я склонен обнаруживать, что некоторые плагины VS вызывают проблемы с DE в VS. - Saif Khan
2 ответы
Попробуйте перехватить исключение и опубликуйте здесь стек вызовов. Чтобы получить стек вызовов, попробуйте использовать подход, описанный в Какая информация вам нужна, чтобы решить проблему, которая возникает с вашими продуктами во время разработки?. Также убедитесь, что для атрибута CopyLocal сборок DevExpress, на которые ссылается ваш проект, установлено значение false. Также в папке bin вашего приложения не должно быть наших сборок. Возможно, это поможет вам решить этот вопрос.
Создан 04 июля '11, 22:07
Я разберусь в этом - пока это перестало происходить (с проектом ничего не изменилось) - Г-н Шубс
Этот тип ошибки возникает, когда вы пытаетесь передать нулевой указатель на собственный метод, и этот метод пытается прочитать из этого нулевого указателя, что вызывает эту ошибку. Поищите в своем коде некий P / Invoke или стороннюю DLL, которую вы, возможно, используете, которая, возможно, использует P / Invoke.
При попытке скомпилировать код на языке c ++, включая библиотеки API sfml, возникает следующая ошибка:
Внутренняя ошибка компилятора в C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.10.25017 \ bin \ HostX86 \ x86 \ CL.exe ‘
Выберите команду технической поддержки в меню справки Visual C ++ или откройте файл справочной службы для получения дополнительной информации.
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ VC \ VCTargets \ Microsoft.CppCommon.targets (358,5): ошибка MSB6006: «CL.exe» завершен с кодом 2.
Я искал в Интернете решение для этого, но я не мог решить это …
Когда я попросил помощи на форуме visual studio, я получил единственный ответ:
«Спасибо за ваш отзыв! Эта проблема была исправлена, и она будет доступна в следующем обновлении Visual Studio 2017. Спасибо за помощь в создании лучшей Visual Studio! »
Вот код с ошибкой:
Решение
Хорошо, если это буквально код, который вы пытаетесь скомпилировать, есть две синтаксические ошибки:
getSize — это метод из класса sf :: Texture, не являющийся членом, поэтому просто добавьте ();
2.- В конце основной функции отсутствует «>». (Я думаю, что вы просто не скопировали это правильно, но все равно проверьте это.
Другие решения
Внутренние ошибки компилятора обычно означают, что с компилятором что-то не так, и, видя, что это VS 2017, я не удивлюсь, если это будет ошибка, так как это более новая версия VS. Тем временем вы можете попытаться найти строку кода, которая вызывает эту ошибку, и найти альтернативное решение или использовать более старую версию Visual Studio.
Я скачал Visual Studio 2015 и попытался запустить код в нем (все учебные пособия по sfml сделаны в версии 2015) и запустить код.
Я считаю, что проблема в том, что библиотеки sfml еще не совместимы с vs 2017, поэтому решение простое:
-использовать Visual Studio 2015 или
-перекомпилировать библиотеки для Visual Studio 2017 (я не знаю, как это сделать)
> e:\program files\microsoft visual studio 8\vc\include\xtree(365) : fatal error C1001: An internal error has occurred in the compiler.
> (compiler file 'msc1.cpp', line 1392)
> 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
001
да ниче бывало сотню раз =) у меня спасало выход -> запуск -> ребилд
Это бывает, когда какой-нибудь некорректный код написан.
VS2003 выкидывает похожий код нет сответствия скобок:
try < . try < . >catch < . >catch
У меня бывало частенько, во всех случаях был написан некорректный код в редакторе, а компилятор не мог правильно распазнать и обработать ошибку.
Так что анализируй свой код более пристально.
З.Ы.: такое у меня бывало только с MS VS
З.Ы.: да это только в том случае, если не помогает: удаление всех бнариков и объектного кода + перезагруз компа + ребилд все
001
Всего-то. Во пол часа назад, делал GuiChan в SCU - словил ICO. Лечилось отказом от SCU. По идее надо пошаманить код, использующий то место, откуда мы падаем.
Можно патчи на Студию воткнуть еще.
001
Это может быть что угодно, но скорей всего, это твоя ошибка.
Если я компилирую свой проект с Enable Minimal Rebuild - стопроцентно IntCompErr.
Без минимального ребилда всё Ок.
Код heavy templated.
cppguru
Сперва это ошибка компилятора, если он не может обработать исходник, а потом уже - программиста.
001
Гы. Это полнейший ацтой. У меня похлеще было - писал про ошибку в своих (. ) сорцах. Что-то типа "интернал эррор ин Е:\Микрософт проджектс\студия 7.1\срц\бла-бла\мемори.цпп, строка 120".
Джо
>Сперва это ошибка компилятора, если он не может обработать исходник, а потом уже - программиста.
Не надо вот диалектики, плиз. И по стандарту, компилятор вообще не обязан никак распознавать ошибки.
В основном я видел, что эта ошибка выдаётся на некорректном коде. Просто это - catch all error.
V0id
Ты про ассерты слыхал?
cppguru
Слыхал. Также слыхал, что их юзают с ифдеф дебаг. Не похоже это на ассерт было ;)
V0id
>Также слыхал, что их юзают с ифдеф дебаг.
Не только.
>Не похоже это на ассерт было ;)
Почему?
001
И чего офигеть? Компиляторы тоже люди пишут, и живут они на планете Земля.
001
В 90% случаев ошибка вызванна странной нестандартной синтаксической конструкцией программиста, которая неправильная, но настолько необычна, что у компилятора для неё нет слов :) И только оставшиеся 10% - это ошибки уже компилятора.
>И Что делать?
To work around this problem, try simplifying or changing the program near the locations listed above.
While compiling on x64 plattform I am getting following error:
If I change settings to preprocessor file (Yes) i am not getting any error.
About my environment: Upgrading Microsoft Visual Studio 2005 to 2010
14 Answers 14
I have had this problem with VS2015 while building locally in Windows.
In order to solve it, I deleted my build folder (Output Directory as seen in Properties/General) and rebuilt the project.
This always seems to help when strange things happen during the build.
I’ve encountered this error many times in VC++. Do the following steps. They’ve sometimes helped me with this issue:
- Take a look at the exact location, pointed out by compiler error.
- Find any external types or classes used there at that location.
- Change the order of “include path” of those files found in step 2 and rebuild the solution.
- I hope that help .
I am getting same error with VC2012. Setting up the project properties Optimization to Disabled (/Od) resolved the issue.
Doing this worked for me, but I think the problem may have been that the value was
In my solution, i've removed output dll file of the project, and I've made project rebuild.
I encountered the same error and spent quite a bit of time hunting for the problem. Finally I discovered that function that the error was pointing to had an infinite while loop. Fixed that and the error went away.
In my case was the use of a static lambda function with a QStringList argument. If I commented the regions where the QStringList was used the file compiled, otherwise the compiler reported the C1001 error. Changing the lambda function to non-static solved the problem (obviously other options could have been to use a global function within an anonymous namespace or a static private method of the class).
I got this error using boost library with VS2017. Cleaning the solution and rebuilding it, solved the problem.
I also had this problem while upgrading from VS2008 to VS2010.
To fix, I have to install a VS2008 patch (KB976656).
Maybe there is a similar patch for VS2005 ?
I got the same error, but with a different file referenced in the error message, on a VS 2015 / x64 / Win7 build. In my case the file was main.cpp. Fixing it for me was as easy as doing a rebuild all (and finding something else to do while the million plus lines of code got processed).
Update: it turns out the root cause is my hard drive is failing. After other symptoms prompted me to run chkdsk, I discovered that most of the bad sectors that were replaced were in .obj, .pdb, and other compiler-generated files.
I got this one with code during refactoring with a lack of care (and with templates, it case that was what made an ICE rather than a normal compile time error)
I had this error when I was compiling to a x64 target. Changing to x86 let me compile the program.
Sometimes helps reordering the code. I had once this error in Visual Studio 2013 and this was only solved by reordering the members of the class (I had an enum member, few strings members and some more enum members of the same enum class. It only compiled after I've put the enum members first).
Я обновился до версии Visual Studio 2015 Update 1, но теперь я получаю следующую ошибку, когда когда-либо компилирую конфигурацию выпуска для 64-битного, все работает для 32-битных и/или отладочных сборников.
Ошибка возникает не для каждого из моих проектов, а для некоторых.
Упрощение указанного местоположения на самом деле невозможно, место, где происходит сбой компилятора, обычно является просто простой функцией одной строки, также изменение этого кода приводит к той же ошибке в другом месте. Насколько я могу предположить, он должен что-то сделать с оптимизацией и вложением. Но изменение параметров оптимизации тоже не помогло.
Может ли кто-нибудь указать мне, как найти реальный проблемный код или некоторые параметры компилятора, чтобы избежать этой ошибки?
Я не хотел бы думать, что обновление не работает.
Мы столкнулись с C1001 в одном из наших проектов после обновления до обновления MSVC 2015.
Через пробную ошибку мы идентифицировали свойство ClCompile/AssemblerOutput как виновника в нашем случае. Удаление этого свойства больше не вызвало C1001
Обновление 6 апреля 2016 года: я попытался создать этот же проект с обновлением MSVC 2015 Update 2 без свойства ClCompile/AssemblerOutput , и я больше не получаю C1001 при создании этого проекта. Я думаю, что обновление 2 исправлено.
Попробуйте настроить при оптимизации проекта на Disabled (/Od), это может решить проблему.
Я надеюсь, что мой ответ будет поддерживать вашу проблему.
Repro компилирует JSON lib в Release | x64. Конфигурация была установлена на максимальной скорости (/O2), но General использовал “Нет оптимизации всей программы”.
Переход от “Нет оптимизации всей программы” для использования генерации кода времени ссылки (я считаю, что флаг является /LTCG ) успешно завершен.
Я также столкнулся с этой проблемой, пока мы конвертировали нашу кодовую базу компании с VC10 на VC14. В нашем случае проблема возникла, когда таргетинг на x64 и SEH ( /EHa ) был включен одновременно с выходом Ассемблера. Ошибка произошла в нашем случае, когда в скомпилированном коде был вызван оператор ввода потока (т.е. std::cout::operator
В нашем случае динамическая привязка ЭЛТ вместо статической привязки (т.е. /MT вместо /MD ), по-видимому, обойти проблему без отключения выхода ассемблера. Это не первая проблема, которую я нашел со статически связанным CRT (например, это также вызвало отсутствующие курсоры при изменении размеров окон CPane в MFC).
Изменить: VS2015 Update 2, согласно Micrsoft, исправил эту проблему. Он протестирован как исправленный на нашей кодовой базе.
Читайте также: