Von Win NAch Linux g++Fehler



  • Moin,
    ich bin mir nicht sicher, ob es mehr in c-Forum gehört, dennoch:

    Ich übernehme gerade ein unter WIn ( bcc ) laufendes Programm nach Linux.
    Dabei stoße ich auf einen Fehler, dem ich ratlos gegenüberstehe:

    dbase.cc

    #include <vector.h>
    #include <time.h>
    #include <iostream.h>                                                                              
    #include <fstream.h>                                                                                     
    #include <string>                                                                                        
    #include <iomanip>                                                                                       
    #include <stdlib.h>
    
    #include  "dbase.hh"                                                                                     
    #include  "mystrings.hh"
    

    die Zeile 1063 lautet:

    int ccomp;
    //..
    ccomp =   indexInfo.keyAktuell.compare(0,cSuch.size(),cSuch);
    //..
    

    Die entsprechende make-Zeile lautet:
    g++ -c -Wall dbase.cc

    und die Fehlermeldung :

    dbase.cc: In method `void dBase::doSeek(long unsigned int, basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > )':

    dbase.cc:1063: no matching function for call to `basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare (int, size_t, string &)'
    /usr/include/g++/std/bastring.cc:398: candidates are: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > &, unsigned int = 0, unsigned int = basic_string<charT,traits,Allocator>::npos) const
    /usr/include/g++/std/bastring.cc:417: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const char *, unsigned int, unsigned int) const
    /usr/include/g++/std/bastring.h:397: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const char *, unsigned int = 0) const
    make: *** [dbase.o] Error 1

    Kann mir da bitte jemand weiterhelfen ?
    Danke Hanns



  • Original erstellt von ^Hanns:
    **dbase.cc: In method `void dBase::doSeek(long unsigned int, basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > )':

    dbase.cc:1063: no matching function for call to `basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare (int, size_t, string &)'
    /usr/include/g++/std/bastring.cc:398: candidates are: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > &, unsigned int = 0, unsigned int = basic_string<charT,traits,Allocator>::npos) const
    /usr/include/g++/std/bastring.cc:417: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const char *, unsigned int, unsigned int) const
    /usr/include/g++/std/bastring.h:397: int basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::compare(const char *, unsigned int = 0) const
    make: *** [dbase.o] Error 1
    **

    Übersetzt:

    dbase.cc: In method `void dBase::doSeek(long unsigned int, string)':

    dbase.cc:1063: no matching function for call to `string::compare (int, size_t, string &)'
    candidates are:
    int string::compare(const string&, unsigned int = 0, unsigned int = string::npos) const
    int string::compare(const char *, unsigned int, unsigned int) const
    int string::compare(const char *, unsigned int = 0) const

    Welche gcc Version verwendest Du und warum bindest Du die ganzen alten "*.h"-Header ein?

    [ Dieser Beitrag wurde am 15.04.2003 um 10:43 Uhr von nman editiert. ]



  • Der gcc ist 2.95.3-216 vom 23 März 2002

    und

    Du die ganzen alten "*.h"-Header

    Hab ich eiogentlich immer schon gemacht, und nicht mitbekommen, daß es neue gibt.
    Welche, und wo lerne ich darüber
    Hanns



  • http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answ

    die neuen header sind ohne .h und deren inhalt ist im namespace std



  • nur dass der 2.95er hoffnungslos veraltet ist (cstdlib zB ist nicht in namespace std{}...)



  • Stimmt, ein Update auf die 3.2er-Serie wäre dringend angebracht, ^Hanns!



  • Danke erstmal,
    beim Holen der neuen variante sind entspr. libs wahrscheinlich dabei
    Hanns



  • Nun muss ich nochmal nachfragen, wo finde ich die Version denn ??
    ich hab z.b auf dem ftp://www.gwdg.de geschaut, finds aber nciht
    Danke Hanns




Anmelden zum Antworten