【发布时间】:2014-01-18 21:13:46
【问题描述】:
我正在将一些本机代码编译到库中以在我的应用程序中使用。一切正常,但有些东西困扰着我。
本机代码的输出添加了“lib”前缀,因此“mylibrary”变为“libmylibrary.so”,我将其添加为“mylibrary”
我不能删除这个前缀吗?这听起来可能很奇怪,但请记住,我对编译本机代码或 c 的知识为零
【问题讨论】:
标签: compiler-construction android-ndk native
我正在将一些本机代码编译到库中以在我的应用程序中使用。一切正常,但有些东西困扰着我。
本机代码的输出添加了“lib”前缀,因此“mylibrary”变为“libmylibrary.so”,我将其添加为“mylibrary”
我不能删除这个前缀吗?这听起来可能很奇怪,但请记住,我对编译本机代码或 c 的知识为零
【问题讨论】:
标签: compiler-construction android-ndk native
"lib" 前缀是早期 Unix 中的命名约定。当带有 -l 标志的链接器使用共享对象时,需要此前缀,请参阅更多 here。当您使用System.loadLibrary() 时,Java 中也隐含了前缀。 Android ApkBuilder 和系统安装程序也需要该前缀(详见here)。
但如果您真的想将文件命名为 "mylibrary.so",则可以创建这样的文件,并使用 System.load(fullpath) 在 Java 中加载它。您将自己处理此文件的部署。
【讨论】: