es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:
enter image description here

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?

Tags:  , ,

Answer

  1. Avatar for 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!

Comments are closed.