Quicr / old-quicrq

BSD 2-Clause "Simplified" License
4 stars 2 forks source link

quicrq_t.exe fails to run on windows with error on libcrypto-3.dll not found #92

Closed hd51515 closed 2 years ago

hd51515 commented 2 years ago

"Reinstalling the program may fix the problem"

This seems to be happening after support for openssl3 was added in picoquic

huitema commented 2 years ago

That "not found" message means that OpenSSL3 was not properly installed, and that libcrypto-3.dll was not on the search path for shared DLL. You should either update that path or manually copy the DLL to the run time directory.

huitema commented 2 years ago

For a DLL to be accessible by programs, it needs to be "registered". This typically happens when the library is installed. There would be a ".lib" file linked with the program and including a call to "load example.dll" -- in our case, one of the opensslv3 library is doing that call. If the library is registered, the "load" succeeds. Otherwise, it only succeeds if the dll file is present in the local directory.

Obviously, "libcrypto-3.dll" was not registered when openssl3 was installed. You can still do it, as explained for example in: https://answers.microsoft.com/en-us/windows/forum/all/how-do-i-register-dll-files-in-a-windows-10-64-bit/27429279-61ff-463b-bb77-3f30be2954ba.

hd51515 commented 2 years ago

I had to manually copy libcrypto-3.dll to quicrq\debug in my setup. Not sure why it wasn't picked up even though it is included in the path.