2015-12-22 48 views
0

我有一組使用Boost和STL庫的C++類,目前正在使用這些類中的可執行文件進行編譯。我想使用SWIG爲此C++代碼創建一個perl接口。使用SWIG將C++代碼與perl連接使用

說如果我有10個班1..10如果我要創建1類與使用痛飲和main()函數的Perl接口處於5級

應該怎樣我的接口文件(* .i)應該看起來像? 我應該用什麼格式構建我的C++代碼?

回答

0

您不需要換行main()就可以爲Class1創建接口。如果想有隻在Perl特定的類,那麼你應該寫

%module <your_module_name> 

%{ 
#include "class1.h" 
%} 

%include "class1.h" 

痛飲將掃描class1.h併爲每類中創建相應的包裝和功能會遇到。您可以使用%ignore來防止某些符號被打包。如果有其他類型的Class 1的頭,說的Class2 Class3的和,像

class Class1 { 
    Class2 foo(); 
    Class3 bar(); 
}; 

SWIG將發出一個錯誤,因爲它不知道如何包裝這些類型。你要麼需要包裝他們太多,或者如果你不希望暴露其他類,你可以寫

%import "class2.h" 
%import "class3.h" 

這將告訴必要的類型信息痛飲,但包裝將不會被創建。