Call .c function in working directory

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 commentaire

Walter Roberson
Walter Roberson le 26 Juin 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 )

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 26 Juin 2021
Modifié(e) : Jan le 26 Juin 2021

1 vote

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 commentaires

Walter Roberson
Walter Roberson le 26 Juin 2021
It is likely that you could also get gcc working, with enough effort; it is not supported by MATLAB on Mac though.
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 le 26 Juin 2021
update: all I had to do was open xcoder..... I am sorry if there was any confusion

Connectez-vous pour commenter.

Catégories

En savoir plus sur Write C Functions Callable from MATLAB (MEX Files) dans Centre d'aide et File Exchange

Commenté :

le 26 Juin 2021

Community Treasure Hunt

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

Start Hunting!

Translated by