Linux: STL String Error



  • Hallo, hoffe ihr könnt mir helfen 😉

    Mein "Programm"

    #include <string>
    
    int main (void)
    {
     string test = "Irgendwas";
     return 0;
    }
    

    Führt beim kompilieren zu folgenden Fehlern:

    In function basic\_string<char, string\_char\_traits<char>, \_\_default\_alloc\_template<true, 0> >::Rep::copy(unsigned int, char const *, unsigned int)': /tmp/ccRxEXbK.o(.basic\_string<char, string\_char\_traits<char>, \_\_default\_alloc\_template<true, 0> >::Rep::gnu.linkonce.t.copy(unsigned int, char const *, unsigned int)+0x27): undefined reference tostring_char_traits<char>::copy(char *, char const *, unsigned int)'
    /tmp/ccRxEXbK.o: In function \_\_malloc\_alloc\_template<0>::\_S\_oom\_malloc(unsigned int)': /tmp/ccRxEXbK.o(.\_\_malloc\_alloc\_template<0>::gnu.linkonce.t.\_S\_oom\_malloc(unsigned int)+0x1a): undefined reference toendl(ostream &)'
    /tmp/ccRxEXbK.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x27): undefined reference to cerr' /tmp/ccRxEXbK.o(.\_\_malloc\_alloc\_template<0>::gnu.linkonce.t.\_S\_oom\_malloc(unsigned int)+0x2c): undefined reference toostream::operator<<(char const )'
    /tmp/ccRxEXbK.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x37): undefined reference to `ostream::operator<<(ostream &(
    )(ostream &))'
    collect2: ld returned 1 exit status

    using namespace std erkennt Redhat 7.x angeblich nicht, auch std::string führt zu nichts...

    Muss ich den GCC vielleicht eine Libary dazu linken?



  • #include <iostream>
    #include <string.h>
    using namespace std;
    
    int main() 
    { 
     string test = ("Irgendwas"); 
     return 0; 
    }
    

    so funktionierts auf jeden fall

    edit: uuuups, hab das dadrunter mit red hat linux nicht gelesen 😞



  • #include <string>
    
    int main ()
    {
      std::string test = "Irgendwas";
      return 0;
    }
    

    ist schon ok. Hast du auch mit g++ und nicht mit gcc kompiliert? Die Fehlermeldungen sind vom Linker und nicht vom Kompiler.



  • Ach bin ich dumm 😃

    Da sucht man die kompliziertesten Lösungen, dabei ist die Rätsels Lösung so einfach...

    DANKESCHÖN!


Anmelden zum Antworten