Error using mex : "Undefined symbols for architecture x86_64: ... "
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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,
0 Kommentare
Akzeptierte Antwort
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
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:
Weitere Antworten (0)
Siehe auch
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!