Problem beim linken von Apple Developer Sample Source mit Xcode 4

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem beim linken von Apple Developer Sample Source mit Xcode 4

    Hallo,

    Lion 10.7.5
    Xcode 4.5

    ich bin erst seit kurzem auf Xcode umgestiegen und habe folgendes Problem.
    Ich habe den hier developer.apple.com/library/ma…L/Introduction/Intro.html
    erhältlichen Sample Code mit Xcode 3 compilieren können. Das hat problemlos geklappt.

    Seit ich Xcode 3 deinstalliert und Xcode 4 installiert habe, krieg ich das Ding nicht mehr kompiliert.
    Nach dem einstellen der Projektsettings auf das neue SDK und der Deaktivierung von ARC sagt der Linker
    das unten folgende. Hat hier irgend jemand eine Idee was da falsch läuft ?

    Danke,
    jnengel


    Ld /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug/OpenGLViewer.app/Contents/MacOS/OpenGLViewer normal x86_64

    cd /Users/Nico/Documents/OpenGLViewer/OpenGLViewer

    setenv MACOSX_DEPLOYMENT_TARGET 10.7

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -L/Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug -F/Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug -filelist /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/OpenGLViewer.LinkFileList -mmacosx-version-min=10.7 -fobjc-link-runtime -framework OpenGL -framework Cocoa -o /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug/OpenGLViewer.app/Contents/MacOS/OpenGLViewer




    Undefined symbols for architecture x86_64:

    "_CheckOpenGLCaps", referenced from:

    _getCurrentCaps in BasicOpenGLView.o

    "_HaveOpenGLCapsChanged", referenced from:

    _getCurrentCaps in BasicOpenGLView.o

    ld: symbol(s) not found for architecture x86_64

    clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • Das ist aus mehreren Gründen Blödsinn.

    Falls es diese Funktionen nicht gäbe hätte der Compiler ja schon gemeckert, das er die Funtionsdefinition
    in den OpenGL.h files nicht findet und nicht erst beim linken. Die gibts also schon.

    und selbst wenn aus irgendwelchen Gründen die ich nicht verstehe man diese Funktionen nicht verwenden kann
    dann interessiert mich ein fix dafür, ein äquivalent etc
  • Danke, genau das wars. Ich hab beim rumkopieren Mist gemacht.
    Der Source von Apple läuft.

    Jetzt hab ich aber schon das nächste problem, das sollte aber was ähnliches sein.
    Irgendein Anfängerfehler.

    Das Programm von Apple zeigt nur einen NSOpenGLView der übers ganze fenster geht.
    Ich will ein Programm schreiben das noch einen TableView und Zeugs anzeigt.
    Daher hab ich ein neues Projekt aufgemacht und die GUI gebaut.
    Danach hab ich den source von Apple importiert (und ausversehen GLCheck.c gelöscht) und deren NSOpenGLView Subklasse verwendet.
    Und jetzt zeigt der folgenden Fehler an:

    Ld /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug/OpenGLViewer.app/Contents/MacOS/OpenGLViewer normal x86_64

    cd /Users/Nico/Documents/OpenGLViewer/OpenGLViewer

    setenv MACOSX_DEPLOYMENT_TARGET 10.7

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -L/Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug -F/Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug -filelist /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/OpenGLViewer.LinkFileList -mmacosx-version-min=10.7 -fobjc-link-runtime -framework OpenGL -framework Cocoa -o /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Products/Debug/OpenGLViewer.app/Contents/MacOS/OpenGLViewer




    duplicate symbol _OBJC_IVAR_$_GLString.texName in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.cgl_ctx in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.textColor in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.boxColor in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.borderColor in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.string in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.texSize in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.staticFrame in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.antialias in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.marginSize in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.cRadius in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.requiresUpdate in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_IVAR_$_GLString.frameSize in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_CLASS_$_GLString in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    duplicate symbol _OBJC_METACLASS_$_GLString in:

    /Users/Nico/Library/Developer/Xcode/DerivedData/OpenGLViewer-cnmvihtvkopiylgwmxfissidiuuz/Build/Intermediates/OpenGLViewer.build/Debug/OpenGLViewer.build/Objects-normal/x86_64/GLString-8B340FA9C91A988B.o

    ld: 15 duplicate symbols for architecture x86_64

    clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • ok jetzt geht es los.


    ich hab auf das Fenster einen vertikalen Splitview gepackt und links das OpenGLView object, rechts einen TableView draufgesetzt.

    nun hatte ich gehofft das OpenGLview (hab ihn auf die Subklasse des Apple OpenGLviews eingestellt) etwas anzeigt, was es nicht tut.

    der code wird ausgeführt, aber man sieht nichts. Was hab ich vergessen ?
  • Mal ganz im Ernst Leute. Warum müsst ihr euch für eure ersten Projekte eigentlich immer sowas kompliziertes ausdenken. Könnt ihr nicht einfach erstmal mit einer einfachen Sache anfangen und darauf aufbauen ?

    Irgendwie braucht heute jeder für sein erstes Projekt gleich ein SplitView möglichst noch eingebettet in einen NavigationController der noch 1 Tabbbar und 2 CollectionViews enthält. Das Ganze kombiniert mit OpenGL und OpenAL und natürlich zwei gleichzeitig laufenden Mediaplayern, welche ortsabhängig unterschiedliche Videos und Audios gleichzeitig im Hintergrund abspielen, während die App durch die Kamera online deine Freunde an Ihrem Lächeln erkennt und ihnen per iMessage ein komplettes Fotobuch ihrer Fotos von der letzten Party im PDF Format schickt.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Mal ganz im Ernst.



    drei Objekte auf einem Fenster sind nicht sonderlich kompliziert.

    Und es passiert IMMER wenn ein Neuling sich Tutorials entfernt und was programmieren will (egal was)
    wofür es keine Vorlage/Schritt für Schritt gibt, also etwas in irgendeiner Form nützliches,
    das man da nicht weiterweiß weil einem bestimmte Konzepte und Eigenheiten noch nicht vertraut sind.
    Genau an diesem Punkt treten halt die Defizite am klarsten zutage.

    Jeder kommt an diesen Punkt, Jeder war mal an diesem Punkt, das ist ganz normal.

    Wenn einer keinen Bock hat zu helfen, oder selbst nix weiß ist das ja völlig in Ordnung aber dann heißts
    einfach mal Fresse halten.

    Ist ja wie auf Youtube hier.

    Gruß,
    jnengel
  • so ich hab den Fehler. Von der Nutzung von NSOpenGLView wird generell abgeraten, da es oft nicht tut was es soll.
    Man soll einen CustomView statt dessen verwenden und dessen Klasse auf NSOpenglView bzw der selbstgeschriebenen Subklasse setzen.
    Ich hab in meinem Fall einfach den schon vorhandenen linken CustomView des SplitView verwendet.
    Funktioniert tadellos.
  • jnengel schrieb:

    Von der Nutzung von NSOpenGLView wird generell abgeraten, da es oft nicht tut was es soll.
    Wo steht das?
    Das ist ja völliger Quatsch, weil der View im Prinzip nur das schon von Haus aus macht, was Du in deinem eigenen View noch machen musst (Pixelformat, usw...)
  • Bei mir funktioniert es auch. Ich hatte, wie oben beschrieben einige Kopierfehler gemacht,
    als ich versucht hab den Apple Source in mein eigenes Projekt einzubinden
    und dadurch den AppleSource vermurkst.

    Aber wenn du in den OpenGLview nimmst und den in einen SplitView reinsetzt
    dann funktioniert es nicht. Probiers aus.