Hello everybody,
My goal is accessing c++ objects within c by using wrapper and externals. To get the pointer to the c++ object I use a type "void *".
But i get an error while linking: undefined reference to "create_mycpp".
Does anybody has an idea what the problem is? Or should I take an other way to access c++ objects?
My goal is accessing c++ objects within c by using wrapper and externals. To get the pointer to the c++ object I use a type "void *".
But i get an error while linking: undefined reference to "create_mycpp".
Does anybody has an idea what the problem is? Or should I take an other way to access c++ objects?
//------------------------------------- //mycpp.cpp #include "mycpp.h" Mycpp::void func(int i) { i += 1; } //------------------------------------- //mycpp.h #ifndef MYCPP_H #define MYCPP_H #endif class Mycpp { public: void func(int); } //------------------------------------- //mywrapper.h #ifndef MYWRAPPER_H #define MYWRAPPER_H #endif typedef void * tMYCPP; tMYCPP create_mycpp(); void mycpp_func(tMYCPP, int); //------------------------------------- //mywrapper.cpp #include "mywrapper.h" #include "mycpp.h" #ifdef __cplusplus extern "C" { void * create_mycpp() { return (tMYCPP)new Mycpp(); } void mycpp_func(void * _mycpp, int _value) { ((Mycpp*) _mycpp)->func(_value); } } #endif //------------------------------------- //main.c #include "mywrapper.h" tMYCPP aCpp = create_mycpp(); mycpp_func(aCpp, 2); //-------------------------------------