Running executable (from packngo) results in "could not open library: libmwnetworkdevice.so"

Hello all,
I'm trying to run a build Simulink file that uses the UDP receive block. I know that this block requires additional .dll library files (.so since I'm using Ubuntu) so I use the PackNGo function to create a zip. I place the extracted zip on another pc (using ssh commands) and try to run the executable as super user. The following error occurs:
"could not open library: libmwnetworkdevice.so"
Notice that the PC on which I try to run the executable does not have a MATLAB installation. I want to run the file without it.
The permissions for this file seems correct, I tried to copy the file to the folder where the executable is located but this does not change anything.
When I try to run the same file without the UDP Receive block it works properly. What could cause this and is there a solution to this problem?
thanks in advance

답변 (1개)

Rishabh Gupta
Rishabh Gupta 2019년 1월 14일
Hi Joris,
Please first ensure that the file "libmwnetworkdevice.so" is on your computer. You should be able to find a copy of the file within your MATLAB root directory (e.g., <matlabroot>/bin/glnx86). The path of the MATLAB root directory can be obtained by typing
>> matlabroot
in the MATLAB Command Window. Once you have located the file, ensure that the path of this file is included as part of the LD_LIBRARY_PATH system environment variable. You should now be able to run the executable file.

댓글 수: 6

@Rishabh Gupta I am having similar issues to this problem of .so files not being found by deployed programs. I thought the points of packNGo was to grab all the necessary dependencies. Why are some not included? If these .so files only live in the Matlabroot and we are tring to compile executables to run without Matlab, doesn't that defeat the purpose? How would you suggest deploying on a system without Matlab installed?
I'm also hitting similar problems, the windows machine generating our code doesn't seem to have libmwnetworkdevice.so anywhere, and the linux executable requires this .
Jeremy,
It sounds like the computer you are running Simulink on is a Windows computer and the computer you are trying to run the .exe on is a Linux computer? The UDP block is only meant to be used on the same OS that Simulink is being run on.
I'm porting the code generated by simulink over to linux and compiling there, then hitting the missing .so error. If I have it right the packngo .zip is supposed to have everything I need to compile wherever I need to , but the .so does seem to be missing - I don't see it on my windows machine. I am trying an install of matlab on a linux machine to see if that .so pops up.
That .so does indeed show up in a matlab linux install, putting it into /usr/lib allows the app to run.
Jeremy,
Did you locate the "libmwnetworkdevice.so" in the folder location <matlabroot>/bin/glnx64? If so, I cannot seem to find it in this location. I am tackling the exact same issue with cross compilation and really do need to obtain the .so file.

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

카테고리

도움말 센터File Exchange에서 Naming Conventions에 대해 자세히 알아보기

제품

릴리스

R2017b

질문:

2019년 1월 3일

댓글:

2024년 7월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by