komischer Compiler Fehler
-
halloo,
ich habe ein programm geschrieben und als ich es kompilieren wollte habe ich folgenden fehler bekommen:
c:\...\main.cpp(26) : error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich) 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(1144): kann 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)' sein 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(1146): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(1148): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(1150): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(155): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(161): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(168): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(175): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(194): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(228): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(247): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(273): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(291): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(309): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(329): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(348): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(367): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(386): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(404): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(422): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\istream(441): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)" 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char> 1> ] 1> bei Anpassung der Argumentliste '(std::istream, std::string)'kann mir vllt einer sagen was diese fehlermeldung bedeutet?
-
Weil du vergessen hast
<string>zu inkludieren, fehlt eine deklaration desoperator >>fürstd::string. Es hat viele Kandidaten, aber keiner passt
Grüssli
-
danke, jetzt bekomme ich aber andere errors:
1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__socket@12" in Funktion ""public: __thiscall Socket::Socket(void)" (??0Socket@@QAE@XZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WSACleanup@0" in Funktion ""public: __thiscall Socket::Socket(void)" (??0Socket@@QAE@XZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WSAStartup@8" in Funktion ""public: __thiscall Socket::Socket(void)" (??0Socket@@QAE@XZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__send@16" in Funktion ""public: bool __thiscall Socket::SendData(char *)" (?SendData@Socket@@QAE_NPAD@Z)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__recv@16" in Funktion ""public: bool __thiscall Socket::RecvData(char *,int)" (?RecvData@Socket@@QAE_NPADH@Z)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__closesocket@4" in Funktion ""public: void __thiscall Socket::CloseConnection(void)" (?CloseConnection@Socket@@QAEXXZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__accept@12" in Funktion ""public: void __thiscall ServerSocket::Listen(void)" (?Listen@ServerSocket@@QAEXXZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__listen@8" in Funktion ""public: void __thiscall ServerSocket::Listen(void)" (?Listen@ServerSocket@@QAEXXZ)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__bind@12" in Funktion ""public: void __thiscall ServerSocket::Bind(int)" (?Bind@ServerSocket@@QAEXH@Z)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__htons@4" in Funktion ""public: void __thiscall ServerSocket::Bind(int)" (?Bind@ServerSocket@@QAEXH@Z)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__inet_addr@4" in Funktion ""public: void __thiscall ServerSocket::Bind(int)" (?Bind@ServerSocket@@QAEXH@Z)". 1>asd.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__connect@12" in Funktion ""public: void __thiscall ClientSocket::ConnectToServer(char const *,int)" (?ConnectToServer@ClientSocket@@QAEXPBDH@Z)". 1>C:\Users\Moe\Desktop\Projekte\asd\Debug\asd.exe : fatal error LNK1120: 12 nicht aufgelöste externe Verweise.
-
Der Linker findet die Definitionen der angegebenen Funktionen nicht.
Wenn das deine eigenen Funktionen sind, implementiere sie; wenn sie zu einer Bibliothek gehören, linke diese.
-
Mascerade schrieb:
danke, jetzt bekomme ich aber andere errors:
Das sind Linkerfehler und keine Kompilerfehler. Diese weisen darauf hin, dass du keine Definition für gewisse Funktionen lieferst.
Wenn ich die Funktionen so anschaue, sind das anscheinend Winsock Funktionen. Wahrscheinlich verwendest du Winsock2. Daher musst du die entsprechende Bibliothek dazu linken.Wenn man in der MSDN die Dokumentation der Funktion nachschauen geht, zum Beispiel von WSAStartup, dann findet man heraus, welche Bibliothek gelinkt werden muss:
http://msdn.microsoft.com/en-us/library/ms742213.aspx
(steht ganz unten)Grüssli
-
danke. jetzt funktioniert alles