error LNK2019: unresolved external symbol when compiling MEX
21 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
hassan mahmood
il 20 Mag 2014
very help full. i encountered this problem using pthread library. thanks :)
Risposta accettata
Tim
il 27 Nov 2013
2 Commenti
hassan mahmood
il 20 Mag 2014
very help full. i encountered this problem using pthread library. thanks :)
hassan mahmood
il 20 Mag 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
Più risposte (2)
James Tursa
il 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
Vedere anche
Categorie
Scopri di più su Write C Functions Callable from MATLAB (MEX Files) in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!