1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Universal Binaries für PPC und X86, SDK Settings ?

Dieses Thema im Forum "OS X-Developer" wurde erstellt von syntheticsw, 10.02.07.

  1. Hallo !


    Ich habe jetzt eine Art Replacement geschrieben,
    das erst gcc mit den PPC Flags aufruft,
    danach mit den X86 Flags aufruft und anschließend mit
    lipo die beiden Dateien zusammenfügt.

    Das man wie in XCode direkt Universal Binaries in configure scripts
    erzeugen kann.


    Leider findet man im Internet jede Menge versch.
    Compiler Flags die man benutzen sollte, auch die Apple Seiten
    sagen teilweise verschiedenes aus :

    Welche sind die richtigen Compile- und Link Flags
    für PPC und welche die richtigen für X86 ?

    CFLAGS_PPC=?
    LDFLAGS_PPC=?
    CFLAGS_X86=?
    LDFLAGS_X86=?


    Danke.
     
  2. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Vielleicht bin ich zu doof, aber ich verstehe die Frage nicht.

    Warum sollten die Flags anders sein? Oder meinst Du -arch ppc und -arch i386 ?

    Alex
     
  3. Hallo !


    Ja, aber wenn ich nur -arch ppc -arch i386 benutze,
    bekomme ich ein Universal Binary das erst ab 10.4 läuft.

    Im Netz wird empfohlen mit gcc-3.3 den PPC Teil und mit
    gcc-4.0 den X86 Teil zu erstellen und dann beides mit lipo zu
    verbinden.

    Neben -arch ppc oder i386 soll man den Pfad des
    entsprechenden Developer SDKs angeben,
    z.B. /Developer/SDKs/MacOSX10.2.8.sdk
    aber wie müssen die Flags genau lauten ?


    Danke.
     
  4. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Also, gcc3.3 brauchst Du dann, wenn das PPC Binary auf Versionen älter als 10.3.9 laufen soll.

    SDK wird mit -isysroot gesetzt

    Alex
     
  5. Wie lauten genau die Flags :


    const char *COMPILE_PPC="-arch ppc \
    -DMAC_OS_X_VERSION_MIN_REQUIRED=1030 \
    -isysroot /Developer/SDKs/MacOSX10.3.9.sdk";

    const char *LINK_PPC="-arch ppc \
    -isysroot /Developer/SDKs/MacOSX10.3.9.sdk";

    const char *COMPILE_X86="-arch i386 \
    -mmacosx-version-min=10.4 \
    -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
    -isysroot /Developer/SDKs/MacOSX10.4u.sdk";

    const char *LINK_X86="-arch i386 \
    -isysroot /Developer/SDKs/MacOSX10.4u.sdk";

    So ?
     
  6. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Ich bin nicht sicher, was der ld ja haben will -- hauptsächlich arbeite ich mit Xcode.

    Ausprobieren würde ich sagen ;)

    Alex
     
  7. Leider habe ich keinen Intel Mac, kann also
    den X86 Teil nicht testen.

    Ich möchte die Flags so wählen das das zu compilierende
    Programm so behandelt wird, als würde es wirklich unter 10.2
    oder 10.3 compiliert.

    Leider habe ich dabei einige Probleme.
    Wäre schön wenn jemand hier seine getesteten, funkt. Flags
    posten könnte.
     
  8. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Ich denke, da musst Du ein bischen mehr information geben.

    Warum willst Du in der Kommandozeile mit 10.2er oder 10.3er SDK übersetzen? Wenn es sich um reine Mac Programme handelt wäre doch Xcode da sicher die bessere -- und einfachere -- variante.
    Wenn es generelle *nix Programme sind, dann ist denen das SDK relativ egal.

    Aber zum Thema: Ich kann nur wiederholen, was ich oben gesagt habe. Die wichtigen Flags sind:
    -arch i386 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk

    bzw.

    -arch ppc -mmacosx-version-min=10.2 -isysroot /Developer/SDKs/MacOSX10.2.8.sdk

    für gcc und ld. Was für Probleme hast Du denn damit?

    Alex
     
  9. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    CPPFLAGS+= -arch ppc -isysroot /Developer/SDKs/MacOSX10.4.u.sdk
    LINKFLAGS+= -arch ppc -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4.u.sd

    Alex
     

Diese Seite empfehlen