Android NDK的编译库

问题描述 投票:1回答:1

Android noob在这里。我正在尝试创建一个运行本机代码的基于OpenGL ES的Android应用,并且正在使用CMake进行构建。

现在,我有一个C ++库,需要针对Android NDK代码包括,导入和链接(.a文件)。我知道该库需要针对Android进行交叉编译,但是如果我仅构建Linux二进制文件(.a文件)并将其链接,它将可以工作吗?

此外,C ++库是使用Windows平台和CMake构建的,后者会生成.lib(Windows的静态lib版本)。从Windows平台(Windows的Linux的静态lib版本)生成.a文件的最佳方法是什么?

c++ android-ndk cross-compiling .a .lib
1个回答
0
投票

现在,我有一个C ++库,需要针对Android NDK代码包括,导入和链接(.a文件)。我知道该库需要针对Android进行交叉编译,但是如果我仅构建Linux二进制文件(.a文件)并将其链接,它将可以工作吗?

不会。这是因为它们只是属于不同的平台。它们都使用相同的格式(.a),但这并不意味着它们兼容。例如,他们使用不同的标准库。因此,您必须针对Android对其进行交叉编译。

此外,C ++库是使用Windows平台和CMake构建的,后者会生成.lib(Windows的静态lib版本)。从Windows平台(Windows的Linux的静态lib版本)生成.a文件的最佳方法是什么?

由于您的C ++库使用C​​Make,并且Android NDK正式支持CMake构建,所以这并不难。

对于Windows,您可以download Android NDK。然后尝试CMake guide。基本上,您应该做的是将工具链文件作为CMake参数以及一些参数(如ABI,API级别等)传递。因此,您可能不需要编辑CMake文件。

© www.soinside.com 2019 - 2024. All rights reserved.