Error using mex : "Undefined symbols for architecture x86_64: ... "

7 Ansichten (letzte 30 Tage)
Shima Asaadi
Shima Asaadi am 21 Mär. 2016
Bearbeitet: Shima Asaadi am 21 Mär. 2016
I am using MATLAB R2015b on Mac. I try to run a very simple cpp file using mex in MATLAB, like the following function:
#include "mex.h"
#include "stdio.h"
#include "iostream"
void testFile()
{
int i=4;
std::cout<<i;
}
But the following error occurs:
Building with 'Xcode Clang++'.
Error using mex
Undefined symbols for architecture x86_64:
"_mexFunction", referenced from:
-exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
However using "make testFile()" in Terminal works well. I studied some solutions in MathWorks but did not work.
Any help would be appreciated.
Thanks,

Akzeptierte Antwort

Steven Lord
Steven Lord am 21 Mär. 2016
You MUST define a function named mexFunction in your MEX-file and that function must have a specific signature. Your source code file does not define a function with that name, so it is not a valid MEX-file and when you attempt to build it as though it was a valid MEX-file the compiler correctly complains.
  2 Kommentare
James Tursa
James Tursa am 21 Mär. 2016
E.g.,
#include "mex.h"
#include "stdio.h"
#include "iostream"
void testFile()
{
int i=4;
std::cout<<i;
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
testFile();
}
See this link:
Shima Asaadi
Shima Asaadi am 21 Mär. 2016
Bearbeitet: Shima Asaadi am 21 Mär. 2016
Many thanks to all.
And sorry for such a basic problem.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Write C Functions Callable from MATLAB (MEX Files) finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by