swig 对基类 'std::string' 一无所知,被忽略
swig Nothing known about base class 'std::string', ignored
我正试图使用swig围绕c++库构建ruby包装器。大部分似乎都在起作用,但我有一个问题,我很确定与上述警告有关。
看起来我正在包装的一个类是从std::string继承的。
当我跑步时,我看到了上面的警告信息。
当我在ruby中调用一个应该返回字符串的对象的方法时,我看到这个
SWIG::类型_p_std_string:0x。。。。。
我在想我需要一些如何修复上述警告才能工作,有什么想法吗?
SWIG抱怨它不知道std::string类,因此无法为它生成代码。
SWIG库std_string.i具有特定于语言的代码,用于将c++字符串映射到目标语言字符串类。在生成类的代码之前添加%include "std_string.i"
应该可以修复错误。
注意,在swig接口文件中,%include
与#include
不同。
每当您在SWIG输出中看到SWIG::Type_p_std_string或类似的隐式类型时,就意味着缺少类型映射。这里,SWIG需要导出std::string。通常情况下,这是因为它用于函数调用参数中,或者用作正在导出的函数中的返回值;在您的情况下,这是因为std::string是一个基类。SWIG包含一个常用STL类(如字符串和向量)的类型映射"库",您只需通过%include指令导入即可。看见http://www.swig.org/Doc2.0/Library.html用于SWIG中包含的其他.i。
相关文章:
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- std::condition_variable::wait()如何评估给定的谓词
- 如何获取std::result_of函数的返回类型
- std::原子加载和存储都需要吗
- 将对象移动到std::shared_ptr
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何从 std::atomic 中提取指针 T<T>?
- 为什么 std::unique 不调用 std::sort?
- 使用std::函数映射对象方法
- swig 对基类 'std::string' 一无所知,被忽略