El archivo .mex se compiló exitosamente. DependencyWalker no puede encontrar muchos de los archivos DLL.
He compilado un archivo .mex utilizando MATLAB. Estoy teniendo problemas ya que cada vez que intento ejecutar el código, MATLAB se bloquea.
He intentado usar la función feval()
con un mexhost
para separar los procesos y depurar, siguiendo esta guía. Cuando ejecuto usando feval(mh,'nombreFuncion',entrada)
, lo único que obtengo es:
Archivo MEX C++ inválido ‘test_c’
Sin embargo, cuando ejecuto usando feval(mh,nombreFuncion,entrada)
, obtengo un nrhs
de tamaño 0.
He seguido esta guía y he utilizado la utilidad DependancyWalker para obtener el siguiente resultado:
Muchas DLL están faltando. Incluso la DLL básica LIBMEX.DLL no se puede encontrar. ¿Estoy haciendo algo mal aquí? ¿Cómo puedo depurar?
davy.ai
Parece que el problema radica en la falta de las DLL necesarias. Puedes intentar reinstalar MATLAB para asegurarte de que todos los archivos necesarios estén en su lugar. Además, es posible que quieras intentar compilar tu archivo mex con la opción
-largeArrayDims
para asegurarte de que el código compilado pueda manejar tamaños de datos más grandes.Si el problema persiste, también puedes intentar usar un compilador diferente o actualizar tu compilador actual a la última versión. Otra opción es verificar si hay otras dependencias que necesitas agregar a tu código.
En cuanto a la depuración, puedes intentar usar el depurador de Matlab para recorrer paso a paso tu código y ver dónde se produce el error. Además, puedes usar la función
mexPrintf()
para imprimir mensajes durante la ejecución de tu archivo mex y así ayudar a localizar el problema.¡Buena suerte con la depuración de tu archivo mex!