Kompilierungsfehler

  • C++/CLI

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Codrix.

    Kompilierungsfehler

    Hallo Zusammen,
    ich wollte in DirecK einsteigen und installiere seit tagen C++ und DirectX und deinstallieren und neu installieren ... :(
    Gerade hab ich alles deinstalliert und C++ Express neu installiert.
    Zum testen ein einfaches Beispiel für Konsole

    #include <stdio.h> // include the standard input/output header file
    #include "stdafx.h"

    void main(void) // our program starts here
    {
    printf("Hello World!"); // print "Hello World!" into the console
    return; // return void to windows
    }

    Beim Kompilieren bekomme ich folgenden Fehler:
    1>------ Erstellen gestartet: Projekt: Hallo, Konfiguration: Debug Win32 ------
    1> Hallo.cpp
    1>LINK : fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Kann mir jemand dabei weiterhelfen woran das liegt?
    Bevor Hallo Welt nicht geht brauch ich mit DirecX garnicht erst anfangen :(

    Danke
    @Codrix Lass mal DirectX zunächst völlig weg.
    Was für ein Projekt hast Du Dir denn generiert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    directx ist momentan kein thema mehr.

    wie schon gesagt wenn nicht mal hallo welt klappt :)

    es ist eine win 32 Konsolenanwendung.

    Habe jetzt gerade ein neues projekt gemacht. win 32 Konsolenanwendung

    generierter Code

    // HalloWelt.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //

    #include "stdafx.h"
    #include <stdio.h>

    int _tmain(int argc, _TCHAR* argv[])
    {
    printf("Hello World!"); // print "Hello World!" into the console
    return 0;
    }

    Printf hinzugefügt von mir.

    Komipierung:
    1>------ Erstellen gestartet: Projekt: HalloWelt, Konfiguration: Debug Win32 ------
    1> stdafx.cpp
    1> HalloWelt.cpp
    1>LINK : fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    :(

    Ist ein Win VIsta System, aber daran sollte es ja nicht liegen oder?

    C-Quellcode

    1. // HalloWelt.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    2. //
    3. #include "stdafx.h"
    4. #include <stdio.h>
    5. int _tmain(int argc, _TCHAR* argv[])
    6. {
    7. printf("Hello World!"); // print "Hello World!" into the console
    8. return 0;
    9. }



    Habe gerade gelesen dass es vielleicht am Framework 4.5 liegt :(
    seit wann benutzt c++ das Framework :(

    Codrix schrieb:

    Was ist dieses COFF?
    Das ist das Common Object File Format. Das gibt dir dein Assembler aus, der zuvor vom C(++)-Compiler mit Assemblercode gefüttert wurde. Wenn diese Datei beschädigt/nicht lesbar ist, kann das mehrere Ursachen haben. Die erste ist ein Datenträgerfehler. Ich glaube aber nicht, dass dies hier der Fall ist. Die zweite Ursache ist eine Fehlkonfiguration des Compilers/Assemblers, dass er Zeug in die Datei schreibt, das da nicht sein soll (zum Beispiel als Flags falsch setzt). Die dritte Möglichkeit ist, dass der Linker ein anderes Dateiformat erwartet (hier COFF) als der Compiler/Assembler ausgibt. Das kann eine Fehlkonfiguration des Linkers, aber auch des Compilers bzw. Assemblers. Eine vierte Möglichkeit, die wir aber ziemlich sicher ausschließen können, ist ein Programmierfehler im Compiler/Assembler/Linker-Gespann.

    Codrix schrieb:

    seit wann benutzt c++ das Framework
    In diesem Fall nicht. Es gibt aber CLR-C++, das das benutzt.

    Mit freundlichen Grüßen,
    Thunderbolt

    Codrix schrieb:

    Konfiguration
    Mach Dir ein neues Projekt:
    Neu -> Projekt -> andere Sprachen -> Visual C++ -> Win32
    ==> Win32 Console Application
    ==> Finish

    C-Quellcode

    1. #include "stdafx.h"
    2. int _tmain(int argc, _TCHAR* argv[])
    3. {
    4. printf("Hello World!"); // print "Hello World!" into the console
    5. getchar();
    6. return 0;
    7. }
    und feddich
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das ist genau das was ich die ganze zeit gemacht hab.
    Aber ich hab den Fehler gefunden.

    Für die die es interessiert:
    Es liegt am Framework. Keine Ahnung wieso ich die Framework 4.5 drauf hatte.
    Habe alles deinstalliert. framework und visual c++ 2010 express.

    Danach visual c++ 2010 installiert. Dabei wird auch das Framework 4.0 installiert.
    Und siehe da... es geht.

    Danke für Eure mühe und Infos.

    Codrix