2010-05-30 53 views
0

我正在爲其他語言編寫C/C++擴展模塊,並且正在使用SWIG生成綁定。SWIG接口文件問題

我有兩個問題

  1. 我可以在接口文件如的聲明部分超過1個文件:

    /*聲明暴露包裝:*/

    > %{ 
    > #define SWIG_FILE_WITH_INIT 
    > #include "a.h" 
    > #include "b.h" 
    > #include "c.h" %} 
    
  2. 到目前爲止我看到的所有例子中,在頭包含聲明之後(如上所示),然後再聲明頭中聲明的函數在接口文件中。這是否真的有必要,因爲這意味着需要維護函數聲明的兩個副本。

注:我能夠理解,一些函數/方法的聲明,可能需要「裝飾」與「NEWOBJECT」聲明,使這些顯然需要在接口文件,以避免內存泄漏 - 然而, ,我會盡可能只包含頭文件,然後只需要用'newobject'聲明的函數/方法的聲明就足夠了 - 這是推薦的做事方式嗎?

回答

1
  1. 是(見http://www.swig.org/Doc1.1/HTML/Library.html
  2. 否(見http://www.swig.org/tutorial.html;尋找SWIG for the truly lazy
+0

對於第二個問題,答案似乎是,而不是一個沒有(也就是我可以偷懶一個YES ,只是包含頭文件而不是重新聲明函數原型) - 對嗎? – morpheous 2010-05-31 05:57:36

+0

你在評論中的解釋是正確的:你「可以懶惰,只包含頭文件而不重新聲明函數原型」,但是在討論重新聲明函數原型時,這個問題的答案(「這真的很有必要」)?是一個沒有。 – Yktula 2010-05-31 15:22:36

+0

感謝您的澄清:) – morpheous 2010-05-31 15:59:20