Derelict SDL2 library not loading on OS X
Joel via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Dec 18 16:58:58 PST 2014
[snip]
>> Failed to load one or more shared libraries:
>
> After that last colon, you should be seeing a list of library
> names that failed to load. Did you somehow fail to copy/paste
> it or is it really missing?
Yes, there was something wrong there, here's another go:
Joels-MBP:test joelcnz$ dmd test.d sdl.a util.a
Joels-MBP:test joelcnz$ ./test
derelict.util.exception.SymbolLoadException at derelict/util/exception.d(35):
Failed to load symbol SDL_free from shared library
/usr/local/lib/libSDL2.dylib
----------------
5 test 0x00000001046a1993 void
derelict.util.loader.SharedLibLoader.bindFunc(void**,
immutable(char)[], bool) + 127
6 test 0x000000010469d3dc void
derelict.sdl2.sdl.DerelictSDL2Loader.loadSymbols() + 312
7 test 0x00000001046a168f void
derelict.util.loader.SharedLibLoader.load(immutable(char)[][]) +
123
8 test 0x00000001046a1611 void
derelict.util.loader.SharedLibLoader.load(immutable(char)[]) + 269
9 test 0x00000001046a14fe void
derelict.util.loader.SharedLibLoader.load() + 98
10 test 0x000000010469cec5 _Dmain
+ 21
11 test 0x00000001046b8a64
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 40
12 test 0x00000001046b89a9 void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) + 45
13 test 0x00000001046b8a09 void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).runAll() + 45
14 test 0x00000001046b89a9 void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) + 45
15 test 0x00000001046b8925
_d_run_main + 433
16 test 0x000000010469cee4 main +
20
17 libdyld.dylib 0x00007fff8ac6f5c9 start
+ 1
18 ??? 0x0000000000000001 0x0 + 1
Joels-MBP:test joelcnz$
> You can see the names that Derelict searches for by default on
> Mac at [1]. Make sure that your copy of SDL is installed at one
> of those locations. Otherwise, you can pass the path to your
> installed copy to an overload of the load method:
>
> DerelictSDL2.load(
> ["Path/to/your/SDL2/installation.framework/dylib"] );
I didn't put install with SDL2, libSDL2.dylib was in a different
place than were I copied SDL2 (old installation?). And I couldn't
get that to work either.
> [1]
> https://github.com/DerelictOrg/DerelictSDL2/blob/master/source/derelict/sdl2/sdl.d#L42
More information about the Digitalmars-d-learn
mailing list