swig Nothing known about base class 'std::string', ignored

后端 未结 2 1176
眼角桃花
眼角桃花 2021-01-18 22:11

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

相关标签:
2条回答
  • 2021-01-18 22:56

    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.

    0 讨论(0)
  • 2021-01-18 23:04

    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.

    0 讨论(0)
提交回复
热议问题