2013-10-08 55 views
0

我正在使用SWIG生成圍繞freetype的C++包裝。我的目標是爲WinRT生成一個可以在Windows Phone 8上工作的C++接口的freetype DLL,但是,似乎生成的C++包裝依賴於Tcl。由於我不需要Tcl綁定,並且WinRT默認不提供Tcl,所以我想知道Tcl依賴關係是否可以以某種方式關閉。我正在使用Visual Studio 2012編譯生成的代碼。C++ SWIG生成的代碼取決於Tcl

我查閱了文檔,我發現所有的東西都是-tcl開關,它添加了Tcl綁定,它似乎默認包含在SWIG生成的C++包裝器中。 swig -Iinclude -c++ -o freetype_cppwrap.cpp freetype_swig.i

我會很感激,如果任何人有關於這個問題的一些指針:

我使用下面的命令生成的包裝。

回答

1

SWIG沒有C++輸出類型(至少2.0.11)。

-c++選項被描述爲:

-c++   - Enable C++ processing 

這只是意味着SWIG處理中的C++源構建體。

因此,您的情況發生的情況是,您在沒有選擇任何有效語言的情況下調用SWIG,這會退回到默認語言切換(-tcl)。

可能是SWIG是這項工作的錯誤工具,一些Google會爲WinRT提供包含部分或全部freetype的VC項目文件,也許您可​​以將它們用作靈感。 (例如MuPDF

+0

非常感謝您的回答。我沒有意識到SWIG沒有輸出C++,謝謝指出。因爲沒有找到我自己而感到羞恥。我一直在使用freetype查看Windows Phone 8項目一段時間,並沒有發現任何使用託管(C#)代碼的freetype。這正是我想要做的。我無法獲得您要鏈接的項目。另外,我還沒有找到一個可以從C代碼生成C++包裝類的SWIG替代方案。一個C++包裝器在我看來是從託管代碼調用C函數的最簡單方法。 – Marneus68