tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
799
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MeeriMomo MeeriMomo ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Ort
    Lilienthal(Niedersachsen)
    Beiträge
    41
    Ich möchte meinen Quelltext so schreiben, dass er auf Windows und auf Linux ohne änderung kompiliert werden kann.
    Ich wollte das ganze mit #if defined machen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    #if defined linux || __linux || __linux__ || __GNU__
    // Linux spezifisches
    #end if
     
    #if defined __WIN32__ || _MSC_VER
     // Windows spezifisches
    #endif

    Geht so wie ich das habe?
     

  2. #2
    Avatar von Vereth
    Vereth Vereth ist offline Mitglied Brokat
    Registriert seit
    Nov 2009
    Ort
    Dortmund
    Beiträge
    372
    Wenn du plattformunabhängig programmieren willst, verwende doch das GNU C++. Die Oberfläche kannst du dann mit wxWidgets oder etwas ähnlichem realisieren.
     
    Vielen Dank für die Nutzung des Bewerten- und Danke-Buttons

    Wenn man sieht, dass man einen anderen glücklich gemacht hat, ist die Welt um zwei glückliche Menschen reicher.

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Schau mal hier: http://predef.sourceforge.net/index.php

    Warum verwendest du keine #if #else Direktiven? A la
    Code c:
    1
    2
    3
    4
    5
    6
    7
    
    #if defined(_WIN32) && !defined(__CYGWIN__)
      // windows
      ...
    #else
      // unixoides BS
      ...
    #endif
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  4. #4
    MeeriMomo MeeriMomo ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Ort
    Lilienthal(Niedersachsen)
    Beiträge
    41
    Danke für die Antwort.

    Geht das denn so wie ich das geschrieben habe. hier mit #if #else

    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    #if defined WIN32  ||  __WIN32__ || _MSC_VER
     
    // Windows
     
    #elif defined linux || __linux  || __linux__ || __GNU__
     
    // Linux
     
    #else
        #error "Unsupported Operating System"
    #endif
     

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von MeeriMomo Beitrag anzeigen
    Danke für die Antwort.

    Geht das denn so wie ich das geschrieben habe. hier mit #if #else
    Nein, das geht so nicht. Warum probierst du es denn nicht wenigstens mal aus?

    Schau nochmal in die Tabelle die ich verlinkt habe.

    Und dann mußt du prüfen ob die einzelnen Werte defined sind und nicht nur ob der erste definiert ist:
    Code c:
    1
    2
    3
    4
    5
    6
    7
    
    #if defined(_WIN32)
    ...
    #elif defined(linux) || defined(__linux)
    ...
    #else
    #  error "OS not supported."
    #endif
    Das reicht nach meiner Erfahrung völlig aus. Den Microsoft Compiler zu prüfen ist in dem Schritt eigentlich unnötig. Bestimmte Compiler sollte man dann extra behandeln.

    Es ist m.E. eine gute Idee die Cygwin Plattform gesondert zu behandeln, da man wohl meist eine max. Unix-ähnliche Version des Programmes unter Windows komplieren will.

    Gruß
    MeeriMomo bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Die Programme in Linux?
    Von FaNo86 im Forum Linux & Unix
    Antworten: 5
    Letzter Beitrag: 04.08.06, 18:21
  2. mehr Programme durch Receiver
    Von hervi im Forum Hardware
    Antworten: 5
    Letzter Beitrag: 11.01.04, 15:00
  3. Linux Programme mit PHP ausführen
    Von noisy im Forum PHP
    Antworten: 1
    Letzter Beitrag: 07.07.03, 17:20
  4. linux pda programme
    Von melmager im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 19.02.03, 20:05
  5. 3D-Programme für LINUX?
    Von Cstar im Forum Blender
    Antworten: 18
    Letzter Beitrag: 11.06.02, 10:13