命令: gcc -fPIC -shared -o libSysInfo.so SysInfo.c
libSysInfo: lib为命名规则必须有, SysInfo为动态库的名字
ps:
后来项目中又用到JNI调用,上述编译的动态库报错
java.lang.UnsatisfiedLinkError: so undefined symbol: __gxx_personality_v0
将gcc 改为g++正常了,折腾了几个小时,前车之鉴啊
g++ -fPIC -shared -o libSecretKeyKeeper.so SecretKeyKeeper.cpp
本文介绍使用GCC及G++编译动态链接库(.so文件)的区别,特别是针对包含C++特性的库文件时遇到的问题及解决办法。通过实际案例,解释为何某些情况下GCC编译的动态库会导致Java应用出现错误,并给出正确的解决方案。

442

被折叠的 条评论
为什么被折叠?



