Compiled application does not run because of startup plugin libmwlmgrimpl.dll

조회 수: 39 (최근 30일)
Stefan
Stefan 2017년 12월 17일
댓글: Marica dicamillo 2019년 10월 3일
I compiled a very simple application (R2017b) but it will not run. When I start it from the DOS prompt, it will return this message: "Fatal Internal Error: std::exception: Bundle#4 start failed: Loading C:\Program Files\MATLAB\R2017b\bin\win64\matlab_startup_plugins\lmgrimpl\libmwlmgrimpl.dll failed with error: The operating system cannot execute %1."
Sometimes it is recommended to reinstall Matlab, which I did, but to no avail. I searched around for any other answers, but I didn't really find anything.
What comes to my mind: Why would a standalone executable with Matlab Runtime installed look for license dlls? In fact, "lmgrimpl" looks like something very license manager related to me, which clearly shouldn't happen on a deployed standalone application?
  댓글 수: 2
Walter Roberson
Walter Roberson 2017년 12월 17일
As I look around and put together hints, I suspect that when a program is compiled, that the license entitlements of the user are copied into the .exe, and then at runtime, the license checks are gone through. There are too many things I could not explain under the hypothesis that the compiler simply does not compile in license checks.
For example, the number of nodes and cores usable under Distributed Computing depends upon the license at compile time: I figure that rather than going through special purpose code to check just that factor, that instead they just use the existing license management routine, passing it the license entitlements that could be fetched at compile time.
Stefan
Stefan 2017년 12월 18일
Sounds like it is the way you put it, but why would the standalone exe look for a license that won't be there anyways on a PC where Matlab is not installed?

댓글을 달려면 로그인하십시오.

답변 (1개)

Ben Drebing
Ben Drebing 2017년 12월 20일
I have found, oddly enough, that this error can happen if you have out-of-date libraries, specifically ssleay32.dll and libeay32.dll, in your Windows System32 directory. If this is the case, you have two options:
  1. Place a copy of MATLAB's SSLEAY32.DLL and LIBEAY32.DLL (from the bin\win64 directory) next to your standalone executable. The directory from which the application loaded has a higher priority than system32, so this should allow the application to use the DLLs which it needs, or
  2. Remove SSLEAY32.DLL and LIBEAY32.DLL from the system32 directory; the standalone can then use the one included with MATLAB. This may break other applications however which rely on the DLL being in system32. So, alternatively you may want to update SSLEAY32.DLL and LIBEAY32.DLL in the system32 directory, for example by replacing it with the copies included with MATLAB or perhaps you could update the application which installed this DLLs in the first place, if you know which application this was.
  댓글 수: 4
Tim Boxall
Tim Boxall 2019년 5월 3일
Hi Ben.
This worked for me - thanks. Do you know why these particular libraries are the problem? How did you work it out?
Thanks,
Tim
Marica dicamillo
Marica dicamillo 2019년 10월 3일
I had the same problem. Updating SSLEAY32.DLL and LIBEAY32.DLL in the system32 directory, my application makes it work. Thank you!

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by