I am trying to use swig to build ruby wrappers around a c++ library. Most of it seems to be working but I have one issue that I am pretty sure is related to the above warnin
SWIG is complaining that it doesn't know about the the std::string class and so cannot generate code for it.
The SWIG library std_string.i has language specific code for mapping the c++ string to the target languages string class. Adding %include "std_string.i"
before the code that generates your class should fix the error.
Note that %include
is different from #include
in a swig interface file.
Whenever you see SWIG::Type_p_std__string or similar cryptic type in SWIG output, it means there is a typemap missing. Here, SWIG needs to export std::string. Normally this is because it is used in a function call parameter or as a return value in a function you are exporting; in your case, it is because std::string is a base class. SWIG includes a "library" of typemaps for commonly used STL classes such as string and vector, you simply import it via an %include directive. See http://www.swig.org/Doc2.0/Library.html for other .i that are included with SWIG.