gpt4 book ai didi

c++ - 为 Android NDK 编译库

转载 作者:行者123 更新时间:2023-12-02 10:22:08 27 4
gpt4 key购买 nike

安卓菜鸟在这里。我正在尝试创建一个可以运行 native 代码的基于 OpenGL ES 的 Android 应用程序,并且我正在使用 CMake 来构建它。

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

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

最佳答案

Now I have a C++ library that I need to include, import and link(.a files) against the Android NDK code. I understand the library needs to be cross compiled for Android, but would it work if I build just Linux binaries (.a files) instead, and link it with it?



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

Also, the C++ library is built using Windows platforms and CMake, which generates a .lib(static lib version of windows). What's the best way to generate .a files from Windows platforms (static lib version of Linux from Windows)?



由于您的 C++ 库使用 CMake 并且 Android NDK 正式支持 CMake 构建,因此这不会那么难。

您可以 download Android NDK对于 Windows。那就试试 CMake guide .基本上你应该做的是将工具链文件作为 CMake 参数传递(加上一些参数,如 ABI、API 级别......)。所以你可能不需要编辑你的 CMake 文件。

关于c++ - 为 Android NDK 编译库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59607622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com