Simplified Wrapper and Interface Generator簡單稱SWIG,是一款非常優(yōu)秀的c語言開源工具,它能有效幫助用戶將 C/C++ 代碼與任何主流腳本語言相集成,有需要的歡迎來東坡下載!!
SWIG 基礎(chǔ)知識
SWIG 接口文件語法是 C 的一個超集。SWIG 通過一個定制 C 預(yù)處理器處理它的輸入文件。此外,接口文件中的 SWIG 操作通過一個百分比符號 (%) 后跟的特殊的指令(%module、%constant 等)來控制。SWIG 接口還允許您定義以 %{ 開頭和以 %} 結(jié)束的信息塊。%{ 和 %} 之間的所有內(nèi)容會原封不動地復(fù)制到生成的包裝器文件中。
模塊名稱的更多信息
可通過指定 %module "rubytest::test34::example,定義一個深度嵌套模塊 rubytest::test34::example。另一個選項是將 %module example 放在接口代碼中,在命令行添加 rubytest::test34 作為它的前綴,如下所示:
SWIG 接口文件必須以 %module 聲明開頭,例如 %module module-name,其中 module-name 是目標(biāo)語言擴展模塊的名稱。如果目標(biāo)語言是 Ruby,這類似于創(chuàng)建一個 Ruby 模塊。可以提供命令行選項 –module module-name-modified 來改寫模塊名稱:在本例中,目標(biāo)語言模塊名稱為(或許您已猜到)module-name-modified。現(xiàn)在,讓我們看看常量。
SWIG模塊初始化功能
SWIG 擁有一個特殊指令 %init,用于定義模塊初始化功能。%{ … %} 代碼塊中 %init 之后定義的代碼會在模塊加載時調(diào)用。以下是代碼:
%module test
%constant char* Text = “Hello World with SWIG”
%init %{
printf(“Initialization etc. gets done here\n”);
%}
現(xiàn)在重新啟動 IRB。以下是在加載模塊后得到的代碼:
irb(main):001:0> require 'test'
Initialization etc. gets done here
=> true
- PC官方版
- 安卓官方手機版
- IOS官方手機版