5

我正在尝试编译一个使用 JNI 的 Java 库。当我启动程序时,我看到一个带有 UnsatisfiedLinkError 的崩溃,它表示在 DLL 中找不到特定的方法。

经过仔细检查,我发现用于编译和链接的 g++ 通过在方法名称中添加诸如“@8”或“@16”之类的后缀来破坏我的方法名称。有人知道禁用名称修改的正确编译器选项吗?提前致谢!

编辑:我通过 Eclipse + CDT 插件使用 MinGW。

4

1 回答 1

12

要使 JNI 调用与使用 GCC 编译的 Windows DLL 一起工作,您需要在链接阶段向 GCC 添加 add-stdcall-alias 参数:

gcc -Wl,--add-stdcall-alias

这将为 DLL 添加正确的函数名称,从而启用通过 JNI 的调用。

于 2010-01-02T21:15:43.033 回答