TrueCraft
TrueCraft copied to clipboard
OS X: System.DllNotFoundException: /Library/Frameworks/SDL.framework/SDL at at (wrapper managed-to-native) Tao.Sdl.Sdl:__SDL_InitSubSystem (int)
Hello, I am attempting to run TrueCraft.Client on OS X, it builds from git (latest revision, 100b11979eb39106306ed39631fe31b97691faed) but fails to run with this error:
System.DllNotFoundException: /Library/Frameworks/SDL.framework/SDL
at at (wrapper managed-to-native) Tao.Sdl.Sdl:__SDL_InitSubSystem (int)
at Tao.Sdl.Sdl.SDL_InitSubSystem (Int32 flags) [0x0003b] in <filename unknown>:0
at Microsoft.Xna.Framework.OpenTKGamePlatform..ctor (Microsoft.Xna.Framework.Game game) [0x00044] in <filename unknown>:0
at Microsoft.Xna.Framework.GamePlatform.Create (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game..ctor () [0x001fb] in <filename unknown>:0
at TrueCraft.Client.TrueCraftGame..ctor (TrueCraft.Client.MultiplayerClient client, System.Net.IPEndPoint endPoint) [0x00000] in /Users/admin/minecraft/TrueCraft/TrueCraft.Client/TrueCraftGame.cs:74
at TrueCraft.Client.Program.Main_Thread (System.String[] args) [0x00036] in /Users/admin/minecraft/TrueCraft/TrueCraft.Client/Program.cs:54
at TrueCraft.Client.Program.Main (System.String[] args) [0x00029] in /Users/admin/minecraft/TrueCraft/TrueCraft.Client/Program.cs:21
As stated on https://truecraft.io/download#osx "TrueCraft is not currently supported on OS X. If you are a developer and wish to change that, we'd love your pull request. It should be easy to port, we just need someone with access to OS X to do it.", so I gave it a shot, but this is where I got stuck. See also: https://github.com/SirCmpwn/TrueCraft/pull/182 Add Mac OSX Support
Configuration:
- Mac OS X 10.11.2
- Xamarin Studio from http://download.xamarin.com/studio/Mac/XamarinStudio-5.10.0.871-0.dmg
- MonoFramework-MDK-4.2.1.102.macos10.xamarin.universal.pkg from http://www.monodevelop.com/download/
Launched Xamarin Studio, opened TrueCraft.sln, Run > Start Debugging - this successfully launches the TrueCraft server ("TrueCraft" project) and I can connect with the official Minecraft 1.7.3 beta client.
However if I run the client by setting Project > Solution Options > Run > Startup Project > TrueCraft.Client, then choosing Run, it fails with the above System.DllNotFoundException: /Library/Frameworks/SDL.framework/SDL error. Sure enough, on my system /Library/Frameworks/SDL.framework does not exist.
As described in the readme, I restored the NuGet packages (in Xamarin Studio: Project > Update NuGet Packages, Restore NuGet Packages), and it succeeds with no error. I believe I followed the instructions correctly, but am new to Mono so I apologize in advance if I'm missing something obvious.
Maybe a step in the build instructions is missing? There are several other references to other libraries in /Library/Frameworks on OS X (SDL, SDL_image, SDL_mixer, SDL_ttf, SDL_net, SDL_gfx, and smpeg). Looks like SDL.framework can be downloaded from http://libsdl.org/download-1.2.php (not http://libsdl.org/download-2.0.php which provides SDL2.framework) and copied to /Library/Frameworks, which fixes this particular error but then SDL_mixer etc. is missing. Is it possible to have these frameworks bundled within TrueCraft?
Bundling these with TrueCraft is less than ideal. Maybe once the project is more stable and ready for a release.
Can you give this branch a try?
https://github.com/SirCmpwn/TrueCraft/pull/228
You can find all the native libraries here:
http://www.flibitijibibo.com/fnalibs.tar.bz2
For TrueCraft you'll need libSDL2-2.0.0.dylib, libSDL2_image-2.0.0.dylib, libopenal.1.dylib, and libmojoshader.dylib. It should just work from Xamarin Studio if those libs are in the output folder, but worst case: Just add the osx/ lib folder to the DYLD_LIBRARY_PATH.
@flibitijibibo Hey, could you reupload the native libraries? It appears the link is offline...
You can find all the native libraries here:
http://www.flibitijibibo.com/fnalibs.tar.bz2
The archive moved:
http://fna.flibitijibibo.com/archive/fnalibs.tar.bz2