Java 共享对象的JNI问题
我在使用jni时遇到了问题,我正在尝试运行一个示例代码 我把它放在一边Java 共享对象的JNI问题,java,c++,java-native-interface,Java,C++,Java Native Interface,我在使用jni时遇到了问题,我正在尝试运行一个示例代码 我把它放在一边 HelloJNI.java 及 另一边是c HelloJNI.cpp 一切都很好,直到我试着做决定。所以 它给了我这个错误 **/usr/bin/ld: error: /tmp/cc2Udvjs.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC** 所以我实际上
HelloJNI.java
及
另一边是c
HelloJNI.cpp
一切都很好,直到我试着做决定。所以
它给了我这个错误
**/usr/bin/ld: error: /tmp/cc2Udvjs.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC**
所以我实际上被困在创造一个
感谢您的帮助您需要更改编译选项以添加-fPIC标志
gcc -fPIC -c cc2Udvjs.c
gcc -shared -o libWhatever.so cc2Udvjs.o
你是否考虑过消息的内容,并用FPIC交换机重新编译?因为这就是你要做的一切。jajaja,这是我的问题,我不知道用-fpic重新编译它的方法。这是一个编译器开关。将它与其他编译器开关放在一起。这不是一个谜。
gcc -fPIC -c cc2Udvjs.c
gcc -shared -o libWhatever.so cc2Udvjs.o