在 Windows 中将 SWIG 生成的文件构建到 DLL 中

Posted

技术标签:

【中文标题】在 Windows 中将 SWIG 生成的文件构建到 DLL 中【英文标题】:Building SWIG generated file into DLL in windows 【发布时间】:2015-03-08 13:23:42 【问题描述】:

我已经阅读了 swig 教程,它是这样做的:

$ swig -java example.i
$ gcc -c example_wrap.c  -I/usr/java/include -I/usr/java/include/solaris
$ ld -G example_wrap.o  -o libexample.so

我可以执行第一个命令,但接下来的两个命令无法执行,因为我没有 gcc,但是我有 Microsoft Visual Studio Express 2013,但我找不到任何使用 MSE2013 构建 dll 文件的教程。 我正在运行 W7 64 位。另外我正在从 c++ 构建到 java。

有人知道如何生成库文件吗?所以我可以做

public class runme 
  static 
    System.loadLibrary("example");
  

  public static void main(String argv[]) 
    System.out.println(example.fact(4));
  

【问题讨论】:

【参考方案1】:

我通常构建 Python 包装器,但它应该是这样的:

cl /LD /Feexample.dll /IC:\jdk1.3\include /IC:\jdk1.3\include\win32 example_wrap.c

/LD 生成 DLL,/Fe 设置输出文件名,/I 添加包含路径。

还有:http://www.swig.org/Doc3.0/SWIGDocumentation.html#Java_visual_studio

【讨论】:

以上是关于在 Windows 中将 SWIG 生成的文件构建到 DLL 中的主要内容,如果未能解决你的问题,请参考以下文章

swig 生成的代码链接到错误的 python 安装

如何在 VS2010 中 SWIG?

SWIG 和 Visual Studio 入门

如何在 Windows 中为 GRIDdb python 客户端设置 swig 安装?

如何在 SWIG/Python 中将结构列表传递给 C

在 SWIG 中将结构从 C++ 函数返回到 Python