1

我有一个简单的 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.

分别适用于每种语言。

4

1 回答 1

3

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

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

swig如果不允许同时使用多种语言,或者如果该功能存在但存在错误(或者如果它存在但未记录并且您因为缺少重要信息而无法使用它),这可能是最简单的解决方案。

于 2015-04-26T07:54:16.743 回答