我有一套用C++編寫的類。從Perl腳本中調用它們的最佳方法是什麼?謝謝。如何從Perl中使用C++類?
12
A
回答
13
我不是特別喜歡SWIG,更喜歡自己編寫接口代碼。 Perl帶有一種叫做'XS'的僞語言,用於連接到C或C++。不幸的是,爲了使用它,你至少需要知道C,Perl,然後學習一些關於解釋器API的知識。如果你已經熟悉Perl和C,那麼它不是這樣的邁出了一大步。看看上XS以下核心文件:
此外,還有很多教程和互聯網上的how-tos。
現在,使用XS連接到C++需要一些額外的步驟。剛開始工作可能有點令人沮喪,但一旦得到它,整齊地落到位。在這方面,核心文件最多是稀少的。但一切都不會丟失。用於Perl的wxWidgets綁定的創建者Mattia Barbon編寫了一個很棒的工具「XS ++」,它使得這個工具變得簡單(或者像XS一樣簡單)。它包含在Wx中,但我們正在努力將其分解成它自己的發行版。這是正在進行中的工作。你可以在github上找到Mattia's XS++ code和modified version of mine。
除非有獨立的XS ++到CPAN的釋放,我會建議學習其他資源編寫XS爲C++:
- 相當長一段時間以前,約翰·凱澤寫了一個極好的tutorial on XS and C++。它還包含有用的工具和文檔的更多指針。
- 我從該教程中學習了XS & C++以及我在CPAN上找到的一些示例。我不記得當時看到的是什麼。但是現在我可以指出我自己的工作是(好還是壞,我不知道)例如:Math::SymbolicX::FastEvaluator。
- 同樣,計劃中的XS ++分佈包含使用XS ++來接口C++和Perl的complete (albeit pointless) example。由於XS ++被翻譯成普通的XS,你可以用它來生成的例子。
PS:還有Inline :: CPP模塊。如果可行,這可能是最簡單的解決方案。不過,我懷疑它可以處理模板。
10
「SWIG是一個軟件開發工具 與各種高級別 編程語言的連接用C寫的 和C++編寫的程序痛飲使用 與不同類型的語言。 包括常見腳本語言 ,如Perl,PHP,Python,Tcl和Ruby。「
7
我通常會選擇XS,就像tsee,但也有Inline::C(或在這種情況下爲Inline::CPP)。我不喜歡SWiG,並且傾向於避免圍繞它構建的包。
相關問題
- 1. 如何從C++調用perl?
- 2. 如何從兵使用perl
- 3. 我如何從使用Perl
- 4. 如何從Perl中
- 5. 如何從C++類使用痛飲
- 6. 在Objective-C中使用perl?
- 7. 我應該如何使用Perl URI類?
- 8. 在Perl中使用類型
- 9. 如何從C++/CLI使用PIMPL使用C#類
- 10. 你如何從Perl使用sed?
- 11. 如何使用Perl
- 12. 如何使用Perl
- 13. 如何使用Perl
- 14. 如何使用Perl
- 15. 如何使用Perl
- 16. 如何使用C#中的XDocument類從xml中刪除節點?
- 17. 如何使用PERL XS調用STL中的C++函數向量
- 18. 從perl調用java類
- 19. 如何從Java調用Perl?
- 20. Perl中,如何從JSON
- 21. 使用PerlNET將不同的perl類中的perl對象返回到C#
- 22. 如何使用WebRequest類在C#中
- 23. 如何在C++中使用類?
- 24. 如何在C#中使用PrintCapabilities類
- 25. 如何在C#類中使用Resources.resx?
- 26. 如何在node.js中使用C#類?
- 27. 如何在類庫c#中使用Messagebox?
- 28. 如何在C++類中使用DllImport?
- 29. 如何在C++類中使用JNI registerNatives?
- 30. 如何在C++中使用類函數?
忘了提一點細節:John Keizer的教程有鏈接到Dean Roehrich的CPAN目錄。鏈接是一個陳舊的CPAN鏡像。試試這個:http://search.cpan.org/CPAN/authors/id/DMR/ – tsee 2009-06-01 16:58:04
XS ++已經作爲ExtUtils :: XSpp發佈到CPAN:http://search.cpan.org/dist/ExtUtils-XSpp 它還處於早期階段,但我已經成功構建了Wx.pm。 – tsee 2009-06-19 09:58:14