DrawLoadDemo – dyld: Symbol not found: ___NSDictionary0__


This topic contains 6 replies, has 2 voices, and was last updated by  pemgl 3 years ago.

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.