New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows build won't load #66
Comments
@hbeni did you try natively compiling on Windows using MSVC? If you have verified that the issue is not that the symbols are not visible, you can send me a copy of your plugin and I can try loading it in my Windows VM (where I can use some debug output to figure out what's going on) :) Btw.: I think in the future it's easier if you just ping me here in the issue instead of commenting on the Mumble-PR (that thing is huge already - no need to further populate it with discussions that are not directly related to the PR itself xD) ☝️ |
No, no compile availability ion windows so far...
How do i export the functions ecplicitely? The header is included, but just with the "include" statement. Nothing more. |
Then that should be enough. The header actually takes care of exporting the symbols
This is done via the |
Do i need exports for my own functions as well? |
No only the plugin functions need to be exported because these are the only ones that Mumble is looking for. Ah wait I actually have an idea, what could be the issue: When was the last time that you updated the plugin header files? I recently fixed something in a few API functions that changed their signature. Thus the API struct is a different now meaning that Speaking of that though I notice that I forgot to mention this change to the API in the PR... 👀 |
I compiled my plugin against the latest state of the branch, and i did notice the change. I hope i integrated it correctly: 24b9c39 As a test, i switched the mingw command from Thank you very much, Robert, for your ongoing help. I'm a bit lost here :( |
I also tried to not bake openssl into the plugin (it's needed fopr the update checker). |
Hm yeah seems correct. The plugin works on Linux, right? Just send me your dll and I'll try to see if I can find out what's going on 🤔 |
Thank you very much! |
Ah and yes, at linux all is fine! you can find the makefile here: https://github.com/hbeni/fgcom-mumble/blob/master/client/mumble-plugin/makefile build it with |
Okay so it seems that the library is not readable or the symbols are indeed not exported. I don't get any output regarding it in the debug console... Unless proven otherwise I'd assume that the issue is to be searched in the cross-compilation. Thus I'd stronlgy suggest natively compiling it on Windows (using MSVC) 🤔 |
Thank you very much for looking at it! Maybe someone capable could try the compile. Meanwhile i try to read into using msvc and how to get it compiled. |
@hbeni why aren't you using cmake? I think that'd greatly facilitate compilation on other platforms. And if you are using cmake, you could also consider refactoring your plugin to use the C++ wrapper for the plugin interface available at https://github.com/mumble-voip/mumble-plugin-cpp. I think that'd also make it easier to maintain and extend in the future :) |
The reason is that i have no clue about cmake at all, I’m completely new to the c/c++ world. |
A really good resource is https://cliutils.gitlab.io/modern-cmake/
In that case I recommend getting to know cmake even more. It has become the de facto standard in this area (for newer projects anyways) and it makes it comparatively easy to support multiple OS. |
Cool i will check it out! |
Using dependency walker i found out that the DLL has some unmet dependencies.
|
Ah it seems like there is an issue with the CRT. That's always super annoying and I twnd to just try and fail until it is working. Thus I am not really an expert here xD |
The https://github.com/lucasg/Dependencies shows pthreads missing: I was of the impression that i statically included it, because i gave: But at least i'm on track of the error now. |
@Krzmbrzl However, i cannot get an UDP connection to work - now it would be very helpful to be able to see mumble's console output so i can see whats going on internally and which data is received etc. |
Something's odd in your setup anyways. Why do you have every plugin listed twice? That's not how it should be 🤔
Inside Mumble you can open the so-called "Developer console" that contains the terminal's output. In order to access it, go into the settings and under user interface, enable the developer menu. This will give you a new entry in Mumble's toolbar from which you can open the console ☝️ |
I have no idea - i just invoked the installer if this snapshot.
very good, thank you, will try that! |
@Krzmbrzl Hi Robert, i played around and still have two problems.
|
|
Writing to a log is a very good idea! Thank you for that! Re the DLL: i revisit that, but i was pretty sure that i linked statically. It does also change my plugins size drastically, so there is more code included. |
If it's a |
|
🤷 |
SSL: Seems i got it working. I added the On to the next thing on the bucket list :) |
@Krzmbrzl Robert, what’s the intended way to log stuff, so it shows up in the developer window? |
So
I don't think there's a way to do that from a plugin. Inside Mumble's code I assume that everything logged via |
Oops, meant
Wouldnt it be cool if that would redirect to the proper place? |
Well I think a way to log to a log-file is more useful than heing able to hack into the Developer console 🤔 |
The logfile produced helpful information.
Maybe this is a memory allocation thingy that works different on windows, or the receiving function is in an endless loop, never actually fetching network data. Have to investigate.
|
YES 🚀 🎆 i got it working! Just did the first successful test at windows10 with two mumble instances and it worked like expected :) 👍 |
A tip that I would have: It would probably be easier if you were to search for a cross-platform library that handles the OS-specific stuff for you. That usually proofs easier in maintenance :) |
Thanks Robert! |
That's how it always starts but stuff like that tends to grow over time :P |
true! |
The windows build DLL cannot be loaded.
Mumble says
Non-plugin found in plugin directory: "<dir>Mumble/Plugins/fgcom-mumble.dll"
Probably a build time problem including openssl dlls
The text was updated successfully, but these errors were encountered: