error LNK2019: unresolved external symbol when compiling MEX
21 次查看(过去 30 天)
显示 更早的评论
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 个评论
hassan mahmood
2014-5-20
very help full. i encountered this problem using pthread library. thanks :)
采纳的回答
Tim
2013-11-27
2 个评论
hassan mahmood
2014-5-20
very help full. i encountered this problem using pthread library. thanks :)
hassan mahmood
2014-5-20
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
更多回答(2 个)
James Tursa
2013-11-21
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
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!