lcg*_*ida 5 java-native-interface linker shared g++
我正在和JNI合作.我有一个包装器库(wrapper.so),它使用两个共享库:one.so和two.so
一切正常.所有*.so都在程序文件夹中的lib文件夹中.
问题是,如果我将此文件夹复制到另一台计算机,我会遇到链接问题.
假设我在机器user2(/ home/user2/program)上运行它,并且我在机器user1(/ home/user1/program)中编译,我得到链接错误:
UnsatisfiedLinkError:/home/user1/program/lib/one.so
如何将库相对于父程序文件夹进行链接(比如,搜索this_foler/lib?
我正在编译像:
g++ -c -o src/wrapper.o src/wrapper.c
g++ -shared -o wrapper.so src/wrapper.o one.so two.so
Run Code Online (Sandbox Code Playgroud)
如何使库相对于父程序文件夹链接
取决于您的操作系统.在Linux上,这可能会起作用:
g++ -shared -o wrapper.so -Wl,-rpath='$ORIGIN' src/wrapper.o one.so two.so
Run Code Online (Sandbox Code Playgroud)
注意:单引号在上面的命令中很重要.
| 归档时间: |
|
| 查看次数: |
4208 次 |
| 最近记录: |