fatal error C1128 wenn flag /O2 gesetzt



  • Wenn ich mein Programm im Release mit /O2 kompiliere (default), es also auf Geschwindigkeit optimiere, bekomme ich immer den Compiler Fehler C1128 -> http://msdn.microsoft.com/en-us/library/8578y171(VS.71).aspx
    Das problem tritt nur in /O2 auf und ich hab keinen plan, was man da tun kann



  • MSDN schrieb:

    To correct this error, divide your source file into multiple source code files.

    Sollte alles sagen !



  • nun ja das hilft mir nicht wirklich, weil die Dateien schon geteilt sind und vor allem weil sie unter anderen umständen im release von vc7.1 kompilieren



  • Könnte es evtl. an

    C1128 can also be caused when there are too many inline functions.

    liegen?



  • Ich habe mir die Seite ja bereits angeguckt, es gibt nur ein paar inlines, nichts schlimems und in einer anderen Situation kompiliert es ja unter VC 7.1 im release.
    Was ich suche ist wissen darüber, was zusätzlich zu /O2 das Problem verursachen könnte



  • Was heisst andere Situation? Wenn du die Compiler Optionen änderst, wird der erzeugte Code kompakter. Das ist alles. Die .c/.cpp einfach in (noch) mehrere .c/.cpp Dateien zerstückeln.

    Wie groß ist die zu kompilierende .c/.cpp Datei? 🙂



  • Nach welcher logik soll ich die teilen? Also eine cpp ist hier 150 kb groß und kompiliert im debug, aber nicht im release.

    hab beide auf 70 kb runter, immernoch der fehler

    @Situation: situation heißt die erstellung dieses projekts per hand in vc7.1 kompiliert in debug und release. die erstellung des projekts mit cmake resultiert in dem obigen problem. Es wurden alle einstellungen verglichen, es gibt keinen sichtbaren unterschied in den optionen der projekte, dies wurde von mehreren bestätigt. aber die vcproj dateien unterscheiden sich im detail extrem



  • Das ist irgendwie witzlos, ich habe dutzende von Dateien, die größte war 150 kb groß, ich hab diese nun in 40 kb blöcke geteilt, die obj files sind bei 3.3 mb, weil es viele große includes gibt (QT)
    die main.obj wird aber immer noch nicht gebaut deswegen. die obj Dateien, sind im release im übrigen wesendlich größer als im debug...


Anmelden zum Antworten