Using Coder's generated C files in Visual Studio ?

조회 수: 6 (최근 30일)
Louis
Louis 2011년 6월 8일
[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

채택된 답변

John Elliott
John Elliott 2011년 6월 8일
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.

추가 답변 (1개)

Kaustubha Govind
Kaustubha Govind 2011년 6월 8일
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
Chirag Gupta
Chirag Gupta 2011년 6월 8일
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 2011년 6월 8일
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.

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by