版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、SWIG快速入門SWIGSWIG 是一個非常優(yōu)秀的開源工具,支持您將 C/C+ 代碼與任何主流腳本語言相集成。此外,它向更廣泛的受眾公開了基本代碼,改善了可測試性,讓您的 Ruby 代碼庫某部分能快速寫出高性能的 C/C+ 模塊。SWIGArpan Sen, 獨立作家Arpan Sen 是致力于電子設計自動化行業(yè)的軟件開發(fā)首席工程師。他使用各種 UNIX 版本(包括 Solaris、SunOS、HP-UX 和 IRIX)以及 Linux 和 Microsoft Windows 已經(jīng)多年。他熱衷于各種軟件性能優(yōu)化技術、圖論和并行計算。Arpan 獲得了軟件系統(tǒng)碩士學位。SWIG C 和 C+ 被
2、公認為(理當如此)創(chuàng)建高性能代碼的首選平臺。對開發(fā)人員的一個常見要求是向腳本語言接口公開 C/C+ 代碼,這正是 Simplified Wrapper and Interface Generator (SWIG) 的用武之地。SWIG 允許您向廣泛的腳本語言公開 C/C+ 代碼,包括 Ruby、Perl、Tcl 和 Python。本文使用 Ruby 作為公開 C/C+ 功能的首選腳本接口。要理解本文,您必須具備 C/C+ 與 Ruby 方面的相應知識。 SWIG 是一款不錯的工具,可適合多種場景,其中包括: 向 C/C+ 代碼提供一個腳本接口,使用戶更容易使用 向您的 Ruby 代碼添加擴展或
3、將現(xiàn)有的模塊替換為高性能的替代模塊 提供使用腳本環(huán)境對代碼執(zhí)行單元和集成測試的能力 使用 TK 開發(fā)一個圖形用戶接口并將它與 C/C+ 后端集成 此外,與 GNU Debugger 每次都需觸發(fā)相比,SWIG 要容易調試得多。SWIGRuby 環(huán)境變量SWIG 生成包裝器 C/C+ 代碼時需要 ruby.h 來保證進行正確的編譯。在您的 Ruby 安裝中檢查 ruby.h:一種建議的做法是將環(huán)境變量 RUBY_INCLUDE 指向包含 ruby.h 的文件夾,將 RUBY_LIB 指向包含 Ruby 庫的路徑。SWIGSWIG 接口文件語法是 C 的一個超集。SWIG 通過一個定制 C 預處理
4、器處理它的輸入文件。此外,接口文件中的 SWIG 操作通過一個百分比符號 (%) 后跟的特殊的指令(%module、%constant 等)來控制。SWIG 接口還允許您定義以 % 開頭和以 % 結束的信息塊。% 和 % 之間的所有內容會原封不動地復制到生成的包裝器文件中。SWIG可通過指定 %module rubytest:test34:example,定義一個深度嵌套模塊 rubytest:test34:example。另一個選項是將 %module example 放在接口代碼中,在命令行添加 rubytest:test34 作為它的前綴,如下所示:SWIGSWIG 接口文件必須以 %m
5、odule 聲明開頭,例如 %module module-name,其中 module-name 是目標語言擴展模塊的名稱。如果目標語言是 Ruby,這類似于創(chuàng)建一個 Ruby 模塊。可以提供命令行選項 module module-name-modified 來改寫模塊名稱:在本例中,目標語言模塊名稱為(或許您已猜到)module-name-modified?,F(xiàn)在,讓我們看看常量。SWIG 開始學習 SWIG 的最簡單方式是在接口文件中聲明某個 C 函數(shù),在某個源文件中定義它,在創(chuàng)建共享庫時鏈接相應的目標文件。第一個示例展示了計算一個數(shù)的階乘的函數(shù): %module test unsigned long factorial(unsigned long); 以下是我編譯為 factorial.o 并在創(chuàng)建 test.so 時鏈接的 C 代碼: unsigned long factorial(unsigned long n) return n = 1 ? 1 : n * factorial(n - 1);SWIG 清單 6. 從 Ruby 測試代碼 irb(main):001:0 require test = true irb(main):002:0 Test.factorial(11) = 3991680
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專利權使用合同2篇
- 2025年度茶樓合作合同經(jīng)典樣本茶樓會員體系合作版4篇
- 二零二五版木門行業(yè)產(chǎn)品研發(fā)與創(chuàng)新合作協(xié)議3篇
- 二零二五年度瓷磚行業(yè)節(jié)能減排技術改造項目合同4篇
- 二零二五年版墓地陵園墓地銷售售后服務合同4篇
- 2025年度智能木屋裝配一體化工程合同4篇
- 二零二四年度智能手機應用開發(fā)與推廣合同2篇
- 二零二五年度水庫水產(chǎn)養(yǎng)殖技術與設備引進合同3篇
- 2023年-2024年生產(chǎn)經(jīng)營單位安全教育培訓試題精練
- 23年-24年項目安全培訓考試題及參考答案【預熱題】
- 發(fā)電機停電故障應急預案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯數(shù)字描紅(0-100)打印版
- 社會組織等級評估報告模板
- GB/T 12173-2008礦用一般型電氣設備
- 2023年1月浙江高考英語聽力試題及答案(含MP3+錄音原文)
- 新媒體研究方法教學ppt課件(完整版)
- 2020新版?zhèn)€人征信報告模板
- 東芝空調維修故障代碼匯總
- 工藝管道儀表流程圖(共68頁).ppt
評論
0/150
提交評論