如何创建一个可以同时适用于多种语言的包装器?

时间:2015-04-26 01:36:25

标签: c++ c swig cross-language

我有一个简单的C API(N简单函数)。我想同时将它包装到C#,Java和Python中。如何调用SWIG同时为多种语言创建包装器?

像这样的东西

  

swig.exe -c ++ -csharp -java -namespace Bla outdir ./ -o ./BlaAPIWrapper.cxx BlaAPI.i

导致swig应用压缩

Assertion failed: !this_, file Modules/lang.cxx, line 332

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

每种语言都能正常工作。

1 个答案:

答案 0 :(得分:3)

使用不同的参数多次调用它,一个用于Java,一个用于C#等。

您可能需要一些shell脚本来自动执行该操作,但是一旦创建了生成包装器的脚本,就只需调用脚本。

如果swig不允许一次使用多种语言,或者如果该功能存在但有问题(或者如果它存在但未记录但您不是),这可能是最简单的解决方案因为缺少重要信息而能够使用它。)