MATLAB Answers

Using Coder's generated C files in Visual Studio ?

29 views (last 30 days)
Louis
Louis on 8 Jun 2011
[EDIT: 20110608 10:34 CDT - reformat - WDR]
Hello Folks,
I have successfully changed my .m files to .c files using Matlab Coder. May you guide me on how to use these files in Visual Studio ?
my function name is faceImage.c
In my Visual Studio .cpp file, I included:
#include "faceImage.h"
#include "faceImage_initialize.h"
#include "faceImage_terminate.h"
But when i compile the file i get:
error LNK2019: unresolved external symbol "void __cdecl faceImage_initialize(void)" (?faceImage_initialize@@YAXXZ) referenced in function _wmain
Can you please give me an example or any reference that may aid me to solve such problem.
Loads of thanks

  0 Comments

Sign in to comment.

Accepted Answer

John Elliott
John Elliott on 8 Jun 2011
Assuming you're just generating the C++ code (and not creating a library), don't forget to add faceImage_initialize.cpp and faceImage_terminate.cpp to you VS project. Adding something to the linker's path won't do the job.
If you're creating a library using MATLAB Coder, then you need to add the library to the linker's input files in your VS project.

  0 Comments

Sign in to comment.

More Answers (1)

Kaustubha Govind
Kaustubha Govind on 8 Jun 2011
Have you included faceImage.c in your Visual Studio project?
Note that if you are calling C functions from C++ files, you need to include the extern "C" directive: How do I call a C function from C++?
You might need to add this to the generated header files for all functions that you intend to call from a .cpp file.

  2 Comments

Chirag Gupta
Chirag Gupta on 8 Jun 2011
As Kaustubha pointed it out, just add "C" in all the header files:
Instead of extern void face_initiallize(...), just make it
extern "C" void face_initialize(...)
Louis
Louis on 8 Jun 2011
Thank you very much for your answers. Instead of going through the hassle of adding the C extern, i regenerated C++ files using Coder. So now i have faceImage.cpp.
So now i should be able to call it easily. I added the path(\codegen\lib\faceImage) to the Visual Studio's project. Specifically: C/C++->general-> Additional Include Directories, and to Linkers->general->Additional Library Directories.
Sadly, i still get the same LNK2019 error. Do you think i am having a problem in adding the headers or the library ?
Really appreciate your feedback. Thank you.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by