我已经浏览了SWIG FAQ和动态模块文档,在决定如何为Windows构建JNI共享库dll时,似乎有很多选项。 wiki描述了使用非常旧版本的visual c ++的过程。每个人都在使用什么?
我在Windows 7上安装了MinGW及以下命令,并在SWIG简单java示例上运行以下命令,见下文:
上次发出的命令错误:
example_wrap.o:example_wrap.c:(.text+0xa9): undefined reference to `gcd'
example_wrap.o:example_wrap.c:(.text+0xe2): undefined reference to `Foo'
example_wrap.o:example_wrap.c:(.text+0xe8): undefined reference to `Foo'
example_wrap.o:example_wrap.c:(.text+0x107): undefined reference to `Foo'
example_wrap.o:example_wrap.c:(.text+0x10d): undefined reference to `Foo'
collect2: ld returned 1 exit status
答案 0 :(得分:2)
看起来你没有编译或没有链接example.c,只有example_wrap.c。您需要执行以下操作:
swig -java example.i gcc -c example_wrap.c -I somepath -I someotherpath gcc -c example.c -I somepath -I someotherpath gcc -shared example_wrap.o example.o -o example.dll