2

我已经为 android 平台开发了一个应用程序。它适用于 ARM 处理器。它工作正常。我想在 MIPS(32 位)处理器上运行的 Android 上尝试相同的应用程序。我尝试交叉编译应用程序但无法生成共享库。我正在使用为 MIPS 处理器定制的 MIPS ndk 和 android 源代码。生成静态库时,它没有显示任何错误,但是在生成共享库时,我收到以下错误:

/home/user/android-ndk-r7m/toolchains/mips-linux-android-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/mips-linux-android/4.4.3/.. /../../../mips-linux-android/bin/ld: /home/user/workspace/testing/ccl_obj/libccl.a(teccl_call_initiate.o): 不能使用针对 `__gnu_local_gp' 的重定位 R_MIPS_HI16制作共享对象时;使用 -fPIC /home/user/workspace/testing/ccl_obj/libccl.a 重新编译:无法读取符号:错误值 collect2:ld 返回 1 退出状态 make:* [obj/local/mips-r2/libhello-jni.so ] 错误 1

请提出任何解决方案。

谢谢

4

2 回答 2

0

The error seems to suggest what to do.

When compiling your source code, add the -fPIC compiler flag.

于 2012-03-12T09:26:48.480 回答
-2

以防万一有人遇到这个问题。运行

make clean 
make

我今天遇到了类似的问题,运行 clean 解决了我的问题。

于 2016-05-05T04:36:59.853 回答