Algorithman / SoundCenSe

Sound for Dwarf Fortress without the need of java :)
14 stars 2 forks source link

Mono and Missing .dll's #20

Open Fearaniar opened 2 years ago

Fearaniar commented 2 years ago

Before I say anything, I just want to mention that I'm not well versed in computer-speak and am, all things considered, a pretty pathetic Linux user. With that being said, I'm always willing to learn, and, in this particular case, I've been bashing my head against the problem for the last 5 hours, trying to approach it from so many different angles, and on every front I've hit nothing but dead ends. Basically, I want Sound Sense on DF--that's it.

I'm running Ubuntu 20.04 DF version is: 0.47.05 SoundCenSe v.1.4.4 (latest at the time)

OK, the nitty-gritty stuff:

[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libglib-2.0-0.dll assembly: type: member:(null) at (wrapper managed-to-native) GLib.Marshaller.g_malloc(uintptr) at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x0002a] in <7fabccec8b944d08a73d2c44188cf7f9>:0 at GLib.Global.set_ProgramName (System.String value) [0x00001] in <7fabccec8b944d08a73d2c44188cf7f9>:0 at Gtk.Application.SetPrgname () [0x0000d] in <64bd07ca456641de939ae0132964184c>:0 at Gtk.Application.Init () [0x00001] in <64bd07ca456641de939ae0132964184c>:0 at SoundCenSeGTK.MainClass.Main (System.String[] args) [0x000a7] in <39229d700ca34e4b81effba0ff3175b1>:0

With nothing else ... command line awaits next entry.

Windows has it's specific .dll files, and I'm assuming mono is trying to access one of them, but my being a Linux user has a special way of pissing it off--but that's just a guess. In any case, help would be greatly appreciated....

Algorithman commented 2 years ago

You could try to install the libglib3.0-cil and/or libglib3.0-cil-dev package on 20.04. They removed the 2.0 version from their packagemanagers, lets hope mono likes the version upgrade.

But the other thing probably would be to use one of the packaged versions like http://www.bay12forums.com/smf/index.php?topic=157712.0

bubstance commented 2 years ago

Just in case someone stumbles across this, I had the same problem as above and was able to finally get Mono to launch the .exe as intended.

I had to add some DllMaps to the main Mono config file (/etc/mono/config).

<dllmap dll="libglib-2.0-0.dll" target="libglib-2.0.so.0" os="!windows"/> <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0" os="!windows"/> <dllmap dll="libgdk_pixbuf-2.0-0.dll" target="libgdk_pixbuf-2.0.so.0" os="!windows"/> <dllmap dll="libgdk-win32-2.0-0.dll" target="libgdk-x11-2.0.so" os="!windows"/>