LINUX 下 JNI C++ 第三方动态链接库so 编译的有关问题
LINUX 下 JNI C++ 第三方动态链接库so 编译的问题
首先对自己编写的Hello.cpp编译成so
g++ -fPIC -D_REENTRANT -I/usr/jdk1.8/include -I/usr/jdk1.8/include/linux -c Hello.cpp
g++ -shared Hello.o -o libHello.so
然后因为Hello.cpp调用了第三方库,所以进行了以下关联。
g++ Hello.cpp -fPIC -shared -L. -lVerifyResult
我这么编译为什么总是提示我 ‘_InitInfo’在此作用域中尚未声明
其中 VerifyResult是第三方库,_InitInfo是第三方库提供的对外接口
Hello.cpp是我自己编写的C++程序,内容是调用 libVerifyResult.so 中提供的函数
另外,我已经将libVerifyResult.so放到了当前目录,并且在/usr/lib下也放置了。
------解决方案--------------------
使用nm命令看看libHello.so里面的符号是不是对
先确保带有main函数的Hello.cpp可以调用第三方库
------解决方案--------------------
system.load(libxxx.so);
------解决方案--------------------
在cpp文件里include头文件,然后使用dlopen试试吧
------解决方案--------------------
http://baike.baidu.com/link?url=miZhS63xkMQgqq-7A5WGvjcaCnxq-R4ZJTS0M7tXnXyv4lqly73D-Vqz4B0Xcz25Iwkf2oVpDpCPn3D8phiYFa
------解决方案--------------------
帮忙顶一个下
首先对自己编写的Hello.cpp编译成so
g++ -fPIC -D_REENTRANT -I/usr/jdk1.8/include -I/usr/jdk1.8/include/linux -c Hello.cpp
g++ -shared Hello.o -o libHello.so
然后因为Hello.cpp调用了第三方库,所以进行了以下关联。
g++ Hello.cpp -fPIC -shared -L. -lVerifyResult
我这么编译为什么总是提示我 ‘_InitInfo’在此作用域中尚未声明
其中 VerifyResult是第三方库,_InitInfo是第三方库提供的对外接口
Hello.cpp是我自己编写的C++程序,内容是调用 libVerifyResult.so 中提供的函数
另外,我已经将libVerifyResult.so放到了当前目录,并且在/usr/lib下也放置了。
------解决方案--------------------
使用nm命令看看libHello.so里面的符号是不是对
先确保带有main函数的Hello.cpp可以调用第三方库
------解决方案--------------------
system.load(libxxx.so);
------解决方案--------------------
在cpp文件里include头文件,然后使用dlopen试试吧
------解决方案--------------------
http://baike.baidu.com/link?url=miZhS63xkMQgqq-7A5WGvjcaCnxq-R4ZJTS0M7tXnXyv4lqly73D-Vqz4B0Xcz25Iwkf2oVpDpCPn3D8phiYFa
------解决方案--------------------
帮忙顶一个下