Call .c function in working directory

3 visualizaciones (últimos 30 días)
Evan Patton
Evan Patton el 26 de Jun. de 2021
Comentada: Evan Patton el 26 de Jun. de 2021
Hello!
I am in way over my head trying to call a .c function in a running script.
The code is about 20 years old now and I am updating it to run on the current 2021 platform on a Mac.
Basically in this working folder I have 2 files "code.c" and "code.dll" and I amd trying to use the them in the context
z=code(x,y);
at the top of the code.c is a header:
#include <math.h>
#include "mex.h"
Ive tried simply calling the function like the following after installing code compiler:
mex code.c
Which then pops the error message of needing a compiler. I really dont want to search to find one that works with a Mac at a low storage space.
Is there any way around this?
  1 comentario
Walter Roberson
Walter Roberson el 26 de Jun. de 2021
Mac does not use .dll files. Mac uses .dylib (dynamic link library) and .a (static link library) files; also dynamically loadable bundles might be .so (see https://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm )

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 26 de Jun. de 2021
Editada: Jan el 26 de Jun. de 2021
Please post a copy of the error message, not a rough paraphrasation.
"needing a compiler" seems to mean, that you did not install a compiler, which is recognized by Matlab. I guess that " current 2021 platform on a Mac" means Matlab R2021a, but what does "Mac at a low storage space" exactly mean? You need XCode 11 or 12, see: https://www.mathworks.com/support/requirements/supported-compilers.html
  3 comentarios
Evan Patton
Evan Patton el 26 de Jun. de 2021
Jan, Walter,
thank you both for your help! I ended up downloading xcoder for my mac (I freed up some storage space and was able to just barely fit it in). I am still getting this error message.
loadlibrary('code.dll','code.c')
gives the error message:
Error using loadlibrary
Supported compiler not found. For options, visit https://www.mathworks.com/support/compilers.
And then another command I tried:
mex code.c
gave the same exact error
Do I need to somehow initialize matlab to automatically recognize xcoder? or is there something else needed in the command.
Thank you so muh
Evan Patton
Evan Patton el 26 de Jun. de 2021
update: all I had to do was open xcoder..... I am sorry if there was any confusion

Iniciar sesión para comentar.

Categorías

Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by