我正在嘗試使用swig來構建圍繞C++庫的ruby包裝。 其中大部分似乎正在工作,但我有一個問題,我很確定與上述警告有關。swig沒有關於基類'std :: string'的已知信息,忽略
它看起來像我包裝的類之一是從std :: string繼承。
我運行swig時看到上面的警告消息。
當我打電話的紅寶石的對象上的方法,該方法應該返回一個字符串,我看到這個
痛飲:: Type_p_std__string:0X .....
我想我需要一些如何解決上述警告對此有用,有什麼想法?
我正在嘗試使用swig來構建圍繞C++庫的ruby包裝。 其中大部分似乎正在工作,但我有一個問題,我很確定與上述警告有關。swig沒有關於基類'std :: string'的已知信息,忽略
它看起來像我包裝的類之一是從std :: string繼承。
我運行swig時看到上面的警告消息。
當我打電話的紅寶石的對象上的方法,該方法應該返回一個字符串,我看到這個
痛飲:: Type_p_std__string:0X .....
我想我需要一些如何解決上述警告對此有用,有什麼想法?
SWIG抱怨說它不知道std :: string類,所以不能爲它生成代碼。
SWIG庫std_string.i具有語言特定的代碼,用於將C++字符串映射到目標語言字符串類。在之前添加%include "std_string.i"
生成您的類的代碼應修復該錯誤。
請注意%include
與swig界面文件中的#include
不同。
Gah ...我嘗試了以下內容:'%include「std_string.i」','%include std_string.i'和'%include
...等等!修復。在頭文件中,我定義了字符串,解決了一些奇怪的typedef,我用std :: string替換了,一切都很好:) –
每當在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處理之前,你需要'%include'std_string.i''。 – nishantjr
但是,該文件會發生什麼?我試圖包含和,但這沒有任何影響 –
nPn
您的百分比是否包含在內?或者#include?請注意,這些在SWIG接口文件中是不同的。 – nishantjr