error LNK2019: unresolved external symbol when compiling MEX
19 views (last 30 days)
Show older comments
I'm trying to compile some files into MEX and I get a linkage error.
I have:
- helloworld.cpp which includes gateway function
- ftdi.h class declaration
- ftdi.cpp a source file
- FTD2XX.h and FTD2XX.lib a library and a header
All files are in the same folder and this folder is my current working directory in MATLAB.
I'm using MS VS2010 and MATLAB R2013a on a 64bit Windows 7. I set up the compiler using mex -setup and was able to create and run some test MEX files.
As I understand, I need to compile both helloworld.cpp and fdti.cpp when I run
mex helloworld.cpp fdti.cpp
I get:
ftdi.obj : error LNK2019: unresolved external symbol __imp_FT_ListDevices referenced in function "public: int __cdecl ftdi::GetDeviceCount(void)" (?GetDeviceCount@ftdi@@QEAAHXZ)
ftdi.obj : error LNK2019: unresolved external symbol __imp_FT_Open referenced in function "public: int __cdecl ftdi::OpenDevice(int)" (?OpenDevice@ftdi@@QEAAHH@Z)
and more of similar errors.
ftdi::GetDeviceCount(void)
and
ftdi::OpenDevice(int)
are functions in ftdi.cpp
I also tried:
mex helloworld.cpp
and got similar errors. When I tried:
mex -IC:\Users\tnosov\Documents\MATLAB\newtest20nov helloworld.cpp
this is the path to where all my files are located and I got the same errors.
I've been stuck with this problem for many days now, I tried many other things I found here and in other places on the internet, but nothing helps. I'll be thankful for any suggestions and comments.
Thank you!
Tim
here's helloworld.cpp:
#include <mex.h>
//for FTDI
#include "ftdi.h"
ftdi usb; //initialize an instance of class ftdi
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[
// {
// mexPrintf("bye World!\n");
// cout << endl << "Error initializing device";
// }
// else
// {])
{
mexPrintf("Hello Worl
// }
d!\n");
}
1 Comment
hassan mahmood
on 20 May 2014
very help full. i encountered this problem using pthread library. thanks :)
Accepted Answer
Tim
on 27 Nov 2013
2 Comments
hassan mahmood
on 20 May 2014
very help full. i encountered this problem using pthread library. thanks :)
hassan mahmood
on 20 May 2014
i have 2 errors to resolve would you look into
http://www.mathworks.com/matlabcentral/answers/130251-linker-error-lnk2005-void-__cdecl-process-void-process-yapeaxpeax-z-already-defined
More Answers (2)
James Tursa
on 21 Nov 2013
You mention a library file FDT2XX.lib but I don't see you use it. Do the functions in ftci.cpp depend on this library? If so, try including it in the mex command so it gets linked in (have all files in the current directory):
mex helloworld.cpp fdti.cpp FDT2XX.lib
See Also
Categories
Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!