我正在尝试使用swig在c ++库周围构建ruby包装器.大部分似乎都有效,但我有一个问题,我很确定与上述警告有关.
它看起来像我正在包装的类之一继承自std :: string.
我跑swig时看到上面的警告信息.
当我在ruby中调用一个应该返回字符串的对象的方法时,我看到了这一点
痛饮:: Type_p_std__string:0X .....
我想我需要一些如何解决上述警告,使其工作,任何想法?
每当你在SWIG输出中看到SWIG :: Type_p_std__string或类似的神秘类型时,就意味着缺少一个类型图.在这里,SWIG需要导出std :: string.通常这是因为它在函数调用参数中使用或作为导出函数的返回值使用; 在你的情况下,这是因为std :: string是一个基类.SWIG包含常用STL类(如字符串和向量)的字体图"库",您只需通过%include指令导入它.有关SWIG附带的其他.i,请访问http://www.swig.org/Doc2.0/Library.html.
SWIG抱怨它不了解std :: string类,因此无法为其生成代码。
SWIG库std_string.i具有特定于语言的代码,用于将c ++字符串映射到目标语言字符串类。%include "std_string.i"
在生成类的代码之前添加应该可以修复该错误。
请注意,这%include
与#include
swig接口文件中的不同。