2009-07-07 21 views
9

Wczytuje się następujący błąd, czy ktoś może mi pomóc, jak to naprawić.Błąd kompilatora wewnętrznego VC++

błąd krytyczny C1001: BŁĄD WEWNĘTRZNY COMPILER (plik kompilator 'f: \ vs70builds \ 3077 \ vc \ Compiler \ CxxFE \ sl \ P1 \ C \ pdbmgr.cpp', linia 149) Proszę wybrać Pomoc techniczna polecenie na C++ menu Obraz pomocy lub otwórz techniczne Pomoc plik aby uzyskać więcej informacji

+2

Dlaczego jest to odrzucane/głosowanie na zamknięcie? Wydaje mi się słuszne pytanie, mimo że nie ma na nie dobrej odpowiedzi – jalf

+1

Yeap, bardzo prawdziwe pytanie, szczególnie jeśli byłeś w tej sytuacji kilka razy. – sharptooth

+1

@Neil: Nie tak leniwy. Typowe jest łamanie gramatyki języka i otrzymywanie komunikatów o zaatakowaniu kompilatora. To nie jest typowe, aby zobaczyć komunikat mówiący, że kompilator faktycznie nie chce skompilować idealnie poprawnego kodu. – sharptooth

Odpowiedz

1

To bardzo niefortunne rzeczą. Takie wskazania pojawiają się raz na jakiś czas bez wyraźnego powodu. Nawet MSDN zaleca, aby przejść do kodu i grać z optymmas pragmy tam. Musisz wykryć, co konstrukcja powoduje to wskazanie i jakoś ją przerobić. Lub możesz użyć nowszej wersji VC++.

3

Nie, jesteś spieprzony. Zrobiłeś coś, co ujawniło błąd w kompilatorze. Graj z ustawieniami optymalizacji, #pragmas i baw się z kodem, aż zadziała.

A może wysłać raport o błędzie na connect.microsoft.com

1

WEWNĘTRZNY Błąd kompilatora (kompilator pliku, numer linii) Kompilator nie może wygenerować poprawny kod dla konstruktu, prawdopodobnie ze względu na połączenie z wyrażeniem i opcja optymalizacji. Spróbuj usunąć jedną lub więcej opcji optymalizacji i ponownie skompiluj funkcję zawierającą linię wskazaną w komunikacie o błędzie. Prawdopodobnie możesz naprawić ten problem, usuwając jedną lub więcej opcji optymalizacji. Aby określić, która opcja jest wadliwa, usuń opcje pojedynczo i przekompiluj, aż komunikat o błędzie zniknie. Najczęściej odpowiedzialnymi opcjami są/Og,/Oi i/Oa. Po określeniu, która opcja jest odpowiedzialna, można ją wyłączyć za pomocą funkcji optymalizacji dotyczącej funkcji, w której wystąpił błąd, i kontynuować korzystanie z opcji dla reszty modułu. Baza wiedzy Microsoft Knowledge Base zawiera więcej informacji o C1001; patrz http://support.microsoft.com/default.aspx?scid=kb;en-us;134650.

Powiązane problemy