所以,我已经在我的Android手机上安装了Ubuntu(但仍然使用Android内核),目的是使用它来使用glibc
为设备编译本机代码。
我创建了一个库,我计划在我想要制作的应用程序中使用它,使用JNI,但我正在使用数学库。我的问题是:
有没有办法将这些库包含到我的库中 创建,以便我的手机可以使用glibc库而不是 仿生(这是NDK使用的)库?
注意:我已经尝试制作一个使用库和静态链接的测试程序,以确保编译后的代码可以在Android操作系统上运行,而不仅仅是Ubuntu,我得出结论它确实:)所以任何关于我的问题的回答将是一个很大的帮助。
答案 0 :(得分:0)
您可以使用ar
从任意.o
个文件中提取原始.a
个文件:
ar x libm.a
然后,您可以选择自己喜欢的任何.o文件,并将它们链接到您自己的代码中。
.a
库文件可以被视为具有额外符号索引功能的tar文件(虽然我不知道内部结构有多相似)。
警告:通常,您只能在主应用程序中使用 static 库中的.o文件。如果您尝试将它们链接到共享库(.so
文件),您可能会运气不好。 .o
文件需要使用-fPIC
创建才能生效,而静态库通常不是这种情况。