pyt*_*ude 5 java java-native-interface g++ name-mangling
我正在尝试编译一个使用JNI的Java库.当我启动程序时,我看到一个带有UnsatisfiedLinkError的崩溃,它表示在DLL中找不到特定的方法.
仔细观察后,我发现用于编译和链接的g ++通过在方法名称中添加诸如"@ 8"或"@ 16"的后缀来破坏我的方法名称.有没有人知道正确的编译器选项来禁用名称修改?提前致谢!
编辑:我通过Eclipse + CDT插件使用MinGW.
Mav*_*rik 12
对于使用GCC编译的Windows DLL的JNI调用,您需要在链接阶段向GCC添加add-stdcall-alias参数:
gcc -Wl,--add-stdcall-alias
Run Code Online (Sandbox Code Playgroud)
这将为DLL添加正确的函数名称,从而通过JNI启用调用.
| 归档时间: |
|
| 查看次数: |
1405 次 |
| 最近记录: |