C++-Strings in Darwin/GCC?

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von hairyguy, 19.04.2005.

  1. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Moin!

    Versuche gerade, ein altes Programm (Kommandozeile und Input/Output-Files), dass ich unter Windows mit Cygnus (GCC und GNU-Tools für Win) geschrieben hatte, unter OS X zu kompilieren. Das erste Problem, auf das ich gestoßen bin und für das ich keine Lösung finde:

    Es gibt offensichtlich keinen Typ bzw. Klasse "string"?!? "string.h" ist ein C-Header, "string" ein Template-File, duch das ich nicht durchsteige...

    Jedenfalls, wo im Programm die Zeile

    string EinString;

    auftaucht, bekomme ich die nette Fehlermeldung:

    error: 'string' is used as a type, but is not defined as a type.

    Wo finde ich die Klasse "string", bitte helft mir... :(

    Gruß, hg.
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    47.809
    Zustimmungen:
    3.797
    Mitglied seit:
    23.11.2004
    wie sehen denn deine includes aus?
    #include <string.h>
    statt
    #include <string>
    ?
     
  3. der grimm

    der grimm MacUser Mitglied

    Beiträge:
    464
    Zustimmungen:
    0
    Mitglied seit:
    10.03.2004
    Also eigentlich sollte es mit einem '#include <string>' getan sein. Dann eben 'std::string meinString;' oder eben vorher noch ein 'using namespace std;' und dann einfach 'string meinString;'...
     
  4. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Tatsächlich, vielen Dank, es war ein namespace-Problem! Jetzt läuft der Compiler zwar noch nicht durch (wär ja auch zu schön gewesen), aber ich bin einen Schritt weiter!

    Vielen Dank! hg.
     
  5. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Ach, falls noch jemand hier ist: Jetzt meckert der Compiler bei meinen Templates rum:

    template<class T> void Cl_List<T>::Add(T* P)
    { ... }

    Da sagt er, es würde eine "Redefinition" geben, allerdings hab ich die Member Function "Add" nur ganz normal deklariert im Header File. Hat sich die Syntax für Templates irgendwie geändert?

    Dank und Gruß! hg.
     
Die Seite wird geladen...

Diese Seite empfehlen