DrawLoadDemo – dyld: Symbol not found: ___NSDictionary0__


Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #708
    pemgl
    Participant

      I’m attempting to build and run “MetalGL-0.10.0/SampleProjects/SampleProjectx.xcworkspace” for OSX and iOS (I’m especially interested in OSX). I opened the workspace in XCode and I can build (it says Build Succeeded). However, when I run I get an error:

      dyld: Symbol not found: ___NSDictionary0__
      Referenced from: /Users/pem/Library/Developer/Xcode/DerivedData/SampleProjects-fusvntzfbrkzyecavaryepgdovjd/Build/Products/Release/DrawLoadDemo.app/Contents/MacOS/DrawLoadDemo (which was built for Mac OS X 10.11)
      Expected in: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
      in /Users/pem/Library/Developer/Xcode/DerivedData/SampleProjects-fusvntzfbrkzyecavaryepgdovjd/Build/Products/Release/DrawLoadDemo.app/Contents/MacOS/DrawLoadDemo

      I tried going to DrawLoadDemos > General > Targets > DrawLoadDemos-OSX > Linked Frameworks and Libraries, where I removed then re-added Foundation.framework. However, I still get the error.

      #711
      pemgl
      Participant

        I verified DrawLoadDemo has a shared library link to Foundation, and I verified Foundation has the symbol NSDictionary:

        $ otool -L DrawLoadDemo
        DrawLoadDemo:
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1252.0.0)
        /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
        /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1404.0.0)
        /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
        /System/Library/Frameworks/Foundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1253.0.0)
        /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)

        $ nm -gu /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep NSDictionary
        _OBJC_CLASS_$_NSDictionary
        _OBJC_METACLASS_$_NSDictionary

        $ nm -gu /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation | grep NSD
        => nothing

        Based on this, I’m confused… DrawLoadDemo links to both CoreFoundation and Foundation. The error message says NSDictionary expected in CoreFoundation, but NSDictionary only exists in Foundation (not CoreFoundation).

        #717
        Bill Hollings
        Keymaster

          @pemgl

          Very strange indeed!

          We’re not seeing anything like that here. I just tried downloading MetalGL 0.1.0 and running the DrawLoadDemo under OS X 10.11 Beta (15A279b) on a Macbook Pro (mid 2014), and it runs fine.

          Perhaps there is an environmental issue. What version of OS X are you using, and on what kind of machine?

          Also, can you ZIP up the Xcode project, post it to somewhere like Dropbox and post a link here, so we can have a look at your configuration?

          …Bill

          #722
          pemgl
          Participant

            OS X Yosemite 10.10.5, Macbook Air (11-inch, Mid 2013).

            I’m just trying to build an unmodified version of “MetalGL-0.10.0/SampleProjects/SampleProjectx.xcworkspace” for OSX

            The error seems strange because NSDictionary is found here:

            $ nm -gU /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation | grep NSDict
            00000000003e0488 S _OBJC_CLASS_$_NSDictionary
            00000000003e0550 S _OBJC_METACLASS_$_NSDictionary

            Yet the error message says that’s where it is looking for NSDictionary:

            dyld: Symbol not found: ___NSDictionary0__
            Referenced from: /Users/pem/Library/Developer/Xcode/DerivedData/SampleProjects-fusvntzfbrkzyecavaryepgdovjd/Build/Products/Release/DrawLoadDemo.app/Contents/MacOS/DrawLoadDemo (which was built for Mac OS X 10.11)
            Expected in: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
            in /Users/pem/Library/Developer/Xcode/DerivedData/SampleProjects-fusvntzfbrkzyecavaryepgdovjd/Build/Products/Release/DrawLoadDemo.app/Contents/MacOS/DrawLoadDemo

            #723
            Bill Hollings
            Keymaster

              @pemgl

              You indicated earlier that you were building using El Capitan (10.11), but in this recent post, you’re indicating Yosemite (10.10).

              Metal is available only on El Capitan (10.11) and later. Can you try running this under El Capitan (10.11)?

              To support OS X versions that do not have Metal, you need to provide a separate implementation of OpenGL ES. The README-UserGuilde.md document includes a section on how to do this.

              …Bill

              #730
              pemgl
              Participant

                @Bill I think what happened is that I was building for 10.11 but I was not running 10.11. I did a software update for XCode which includes 10.11 (MacOSX10.11.sdk), but the public (non-beta) 10.11 release of OSX is not released until tomorrow (9/30). That must be why I got an error message saying “built for Mac OS X 10.11” even though I haven’t installed 10.11 yet. I will install 10.11 tomorrow and see if it works

                #731
                pemgl
                Participant

                  After installing OS 10.11 (which was just publicly released today 9/30), I am now able to build and run the DrawLoadDemo sample application. Good stuff! I look forward to seeing more progress from MetalGL OSX support for GLES2 & GLES3. I’ll try my (CMake, SDL2, GLES2) project next (I have a separate thread on this). thank you & best regards

                Viewing 7 posts - 1 through 7 (of 7 total)
                • The forum ‘MoltenGL Support’ is closed to new topics and replies.