Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

How to call Matlab user defined function on Xcode 5 using mexCallMatlab?

Asked by Youssef on 21 Mar 2014
Latest activity Commented on by Geoff Hayes on 19 Aug 2014

Hello,

I'm really stuck in setting a Xcode 5 project to call a Matlab function. Since the engine.h calls only built in function, I can't refer to this post: http://www.mathworks.com/matlabcentral/answers/91611-how-can-i-build-an-engine-application-using-the-xcode-ide-on-mac

I actually even tried it but it didn't work. So, here I have:

-Maverick 10.9.1

-Xcode 5.0.2

and I am trying to call a dummy Matlab function that won't do anything. After creating the command line tool project on Xcode, I set up a few things:

Build Settings-> Search Paths -> Header Search Paths and add $MATLABROOT/extern/include

To find the headers ("mex.h" in particular)

And build Settings-> Search Paths -> Library Search Paths and add: $MATLABROOT/bin/maci64 and $MATLABROOT/sys/os/maci64

Also, I added the following variables to the Unix environment:

$MATLABROOT/bin/maci64:

$MATLABROOT/sys/os/maci64:

/System/Library/Frameworks/JavaVM.framework/JavaVM:

/System/Library/Frameworks/JavaVM.framework/Libraries

And finally set up the architecture to Universal (32/64 bit Intel)

But still getting the following error:

Undefined symbols for architecture x86_64: "_mexCallMATLAB", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Did anyone encounter the same problem and solved it? or have any leads as to why it is not working? Thank you

Update: Just tried the example mexcallmatlab.c and got the same error. I added manually the libraries libmx.dylib and libeng.dylib (which should be found automatically since I put their path in the Library search paths). The errors are now:

Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable "_mexCallMATLAB", referenced from: _mexFunction in main.o "_mexErrMsgIdAndTxt", referenced from: _mexFunction in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

2 Comments

Stefano on 19 Aug 2014

I have the same problem... cannot run the mexcallmatlab.c example on Mac OS 10.9. Any updates here?

Geoff Hayes on 19 Aug 2014

Stefano - it may be worthwhile to create a new question and outline exactly what you are doing with mexcallmatlab.c and describe in detail the errors that you observe. In the Command Window of MATLAB, I can run

 mex mexcallmatlab.c

and then

 mexcallmatlab 

to get the expected output. This program may not be designed to run through Xcode without some modification and the creation of the "engine". Is that what you are doing?

Note that I am running MATLAB R2014a on OS X 10.8.5.

Youssef

Products

No products are associated with this question.

0 Answers

Contact us