mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.4k stars 1.12k forks source link

Installer doesn't copy rnnoise.dll #3477

Closed edm7707 closed 6 years ago

edm7707 commented 6 years ago

I am trying to build the mumble Installer but am having trouble getting the installer to properly work... using Instructions here https://wiki.mumble.info/wiki/BuildingWindows My locally compiled version of Mumble builds and works perfectly fine

The installer compiles fine, and installs fine but I must have misconfigured the environmental variables

I receive the following error once I try to run Mumble after installing it ":x: Failed to load mumble_app.dll " in a windows popup

According to documentation ... latest WIX stable Version (currently 3.8) --> in reality its currently 3.11.1 ( ***This the one I installed)

I then set some environmental variables specifically

MumbleSourceDir = C:\MumbleBuild\win64-static-1.3.x-2018-07-01-x\mumble MumbleQtDir = C:\MumbleBuild\win64-static-1.3.x-2018-07-01-x\Qt5 MumbleSndFileDir = C:\MumbleBuild\win64-static-1.3.x-2018-07-01-x\sndfile MumbleMySQLDir =C:\MumbleBuild\win64-static-1.3.x-2018-07-01-x\mariadbclient"

MumbleNoSSE2 -- removed in the config because it was giving issues with build

Are these build instructions up to date to build the installer? Are there updated instructions floating around somewhere?

Thanks :palm_tree:

davidebeatrici commented 6 years ago

Does Mumble work correctly if you run it from the build directory?

edm7707 commented 6 years ago

Yeah works no problem!

davidebeatrici commented 6 years ago

Is mumble_app.dll copied by the installer?

edm7707 commented 6 years ago

Yeah I see a mumble_app.dll ... Do i need to set dir for QT and other static libraries ?

davidebeatrici commented 6 years ago

The environment is set up here: https://github.com/mumble-voip/mumble/blob/adcf9fea49939372ce98f52a601d0dd08a23fa34/src/mumble_exe/mumble_exe.cpp#L69-L118

Could you write here the path to mumble_app.dll, please?

edm7707 commented 6 years ago

Do you mean like this? ... Still ran into the same error

HMODULE dll = LoadLibraryExW(L"C:\\Program Files\\Mumble", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
    if (!dll) {
        Alert(L"Mumble Launcher Error -3", L"Failed to load mumble_app.dll.");
        return -3;
    }
davidebeatrici commented 6 years ago

Sorry, I meant here in a message.

From your code snippet I assume that mumble_app.dll is in C:\Program Files\Mumble.

LoadLibraryExW() doesn't find the library because you didn't specify its name, the code should be:

HMODULE dll = LoadLibraryExW(L"C:\\Program Files\\Mumble\\mumble_app.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
    if (!dll) {
        Alert(L"Mumble Launcher Error -3", L"Failed to load mumble_app.dll.");
        return -3;
    }
edm7707 commented 6 years ago

still no luck... After adding the above library name to the LoadLibraryExW, still get the same error.

(This however now breaks the mumble in the build release directory)... unless I move the entire release folder to C:\Program Files\Mumble ... so the loading is working

I just tried copying all the libraries in the release to the directory that I installed mumble and it worked... so ill try to figure out what I'm missing ( mumble_app.dll is the same between both)

edm7707 commented 6 years ago

So I think I figured it out ... basically rnnoise.dll is not being copied with the installer #3427 ... when I have a moment I might submit a pull request

davidebeatrici commented 6 years ago

Thank you very much for finding out the issue.

We should improve the error message by specifying the return value of LoadLibraryExW(), so that we can immediately know if the library is not found or it failed to load for other reasons, such as a missing dependency (as in this case).

You can use Dependency Walker to check the dependencies.