创建一个静态链接的库

时间:2013-07-10 02:27:58

标签: android c static-libraries

所以,我已经在我的Android手机上安装了Ubuntu(但仍然使用Android内核),目的是使用它来使用glibc为设备编译本机代码。

我创建了一个库,我计划在我想要制作的应用程序中使用它,使用JNI,但我正在使用数学库。我的问题是:

  

有没有办法将这些库包含到我的库中   创建,以便我的手机可以使用glibc库而不是   仿生(这是NDK使用的)库?

注意:我已经尝试制作一个使用库和静态链接的测试程序,以确保编译后的代码可以在Android操作系统上运行,而不仅仅是Ubuntu,我得出结论它确实:)所以任何关于我的问题的回答将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用ar从任意.o个文件中提取原始.a个文件:

ar x libm.a

然后,您可以选择自己喜欢的任何.o文件,并将它们链接到您自己的代码中。

.a库文件可以被视为具有额外符号索引功能的tar文件(虽然我不知道内部结构有多相似)。

警告:通常,您只能在主应用程序中使用 static 库中的.o文件。如果您尝试将它们链接到共享库(.so文件),您可能会运气不好。 .o文件需要使用-fPIC创建才能生效,而静态库通常不是这种情况。