Erhebliche Probleme beim Kompilieren
-
Hallo Freunde der Sonne. Beim Kompilieren des unten vorgestellten Programmes erhalte ich folgende Fehlermeldung:
Berechnung.exe:cygming-crtbegin.c:(.text+0x500): multiple definition of `__gcc_register_frame' C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/crtbegin.o:cygming-crtbegin.c:(.text+0x0): first defined here Berechnung.exe:cygming-crtbegin.c:(.text+0x560): multiple definition of `__gcc_deregister_frame' C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/crtbegin.o:cygming-crtbegin.c:(.text+0x60): first defined here Berechnung.exe:crtexe.c:(.CRT+0x10): multiple definition of `mingw_pcinit' C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/lib/../lib/crt2.o:crtexe.c: (.CRT$XIAA+0x0): first defined here Berechnung.exe:crtexe.c:(.data+0x0) : multiple definition of `__mingw_winmain_nShowCmd' C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.data+0x0): first defined here Berechnung.exe:crtexe.c:(.CRT+0x4): multiple definition of `mingw_pcppinit' C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.CRT$XCAA+0x0): first defined here Berechnung.exe:crtexe.c: (.idata+0x20c): multiple definition of `_imp___ZSt4cout' Berechnung.exe:crtexe.c: (.idata+0x20c): first defined here Berechnung.exe:crtexe.c: (.idata+0x208): multiple definition of `_imp___ZSt3cin' Berechnung.exe:crtexe.c: (.idata+0x208): first defined here C:\Users\HENRYW~1\AppData\Local\Temp\cciAMBp7.o:Berechnung.cpp: (.text+0x0): multiple definition of `main' Berechnung.exe:Berechnung.cpp: (.text+0x570): first defined here C:\Users\HENRYW~1\AppData\Local\Temp\cciAMBp7.o:Berechnung.cpp: (.text+0x21): multiple definition of `_fu0___ZSt4cout' Berechnung.exe:Berechnung.cpp: (.text+0x591): first defined here C:\Users\HENRYW~1\AppData\Local\Temp\cciAMBp7.o:Berechnung.cpp: (.text+0x69): multiple definition of `_fu1___ZSt4cout' Berechnung.exe:Berechnung.cpp: (.text+0x5d9): first defined here C:\Users\HENRYW~1\AppData\Local\Temp\cciAMBp7.o:Berechnung.cpp: (.text+0x31): multiple definition of `_fu2___ZSt3cin' Berechnung.exe:Berechnung.cpp: (.text+0x5a1): first defined here C:\Users\HENRYW~1\AppData\Local\Temp\cciAMBp7.o:Berechnung.cpp: (.text+0x79): multiple definition of `_fu3___ZSt3cin' Berechnung.exe:Berechnung.cpp:(.text+0x5e9): first defined here C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/5.3.0/crtbegin.o:cygming-crtbegin.c:(.text+0x22): undefined reference to `_Jv_RegisterClasses' collect2.exe: error: ld returned 1 exit status
Betriebssystem: Windows 10 Home
Plattform: Lenovo Miix (PC-Tablet-Hybrid Netbook)
Kompilierer: MinGW (Von den GNU-Leuten)Programm "Berechnung.cpp":
#include <iostream> using namespace std; int main() { int summe; int summand1; int summand2; // Lies zwei Zahlen ein. cout << "Zwei ganze Zahlen eingeben"; cin >> summand1 >> summand2; /* Berechne die Summe beider Zahlen. */ summe = summand1 + summand2; // Zeige das Ergebnis auf dem Bildschirm an. cout << "Summe" + summe; cin >> summe; // damit Programm nicht sofort schließt }
Batchdatei "Kompilieren.bat":
g++ -o -std=c++14 Berechnung.exe Berechnung.cpp pause
Alle Dateien liegen im selben Ordner.
Ich danke für alle Antworten!Nachsatz:
Ich mußte die Fehlermeldung leicht verfälschen, da die Forenalgorithmen dortige Zeichenfolgen als Smileys erkennen, von denen nur 10 erlaubt sind.
-
Das ist kein C++-Problem, du hast einfach die Manpage zum g++ nicht gelesen und ignoriert, dass die Ausgabedatei direkt nach
-o
kommen muss.
-
Okay, funktioniert aber immer noch nicht.
Jetzige Ausgabe sind drei kryptische Zeichen, obwohl sie "Summe: Zahl" lauten sollte.
-
Dexter1997 schrieb:
Jetzige Ausgabe sind drei kryptische Zeichen, obwohl sie "Summe: Zahl" lauten sollte.
Zeig mal eine Quelle für Deine Annahme.
ProTipp: Warnungen im Compiler einschalten.
-
Ich hab den Fehler gefunden, da steht ein "+" anstelle eines "<<"
-
Dexter1997 schrieb:
Ich hab den Fehler gefunden, da steht ein "+" anstelle eines "<<"
Gut.
Zum Trost: Du bist nicht der erste, dem das passiert...Ansonsten warnt der g++ tatsächlich nicht, clang allerdings schon:
$ clang++ -Wextra -Wall -pedantic -std=c++14 test.cc -o test test.cc:16:18: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int] cout << "Summe" + summe; ~~~~~~~~^~~~~~~ test.cc:16:18: note: use array indexing to silence this warning cout << "Summe" + summe; ^ & [ ] 1 warning generated.
Trotzdem übernimm
-Wextra -Wall -pedantic
in Deinen Compileraufruf.