gpt4 book ai didi

android - 用 clang 而不是 gcc 构建 android?和 clang STL 库而不是 gnuSTL 库?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:26 28 4
gpt4 key购买 nike

我正在尝试使用 clang 而不是 gcc 构建一个 android ndk 应用程序,因为我已经尝试过这个在 Android.mk

NDK_TOOLCHAIN_VERSION := clang
LOCAL_CLANG :=true
LOCAL_LDLIBS := -lc++_static
LOCAL_CFLAGS := -std=c++11

在 Application.mk 中

APP_PLATFORM    := android-9
APP_STL := libc++_static
APP_CPPFLAGS := -fexceptions -frtti
APP_ABI := armeabi-v7a

但它总是给我与 std 库的链接错误。

感谢任何帮助!

最佳答案

您的 *.mk 文件中有几个错误:

libc++_static 不是 APP_STL 的正确值,这里应该是 c++_static

NDK_TOOLCHAIN_VERSION 在 Android.mk 中设置时无效,应在 Application.mk 中设置

LOCAL_CLANG 是 AOSP 的系统模块内部使用的变量,在使用 NDK 时不是。

由于您将 APP_STL 设置为 c++_static,NDK 工具链将正确地告诉链接器要使用的库,您不应添加 LOCAL_LDLIBS := -lc++ _static.

此外,您将 APP_ABI 设置为仅 armeabi-v7a,是故意的吗? Android 也可以在其他架构上运行,如果您也相应地编译您的库,您将在这些架构上获得更好的性能。您可以将 APP_ABI 设置为 all 或架构列表 armeabi-v7a x86...

总结:

Android.mk

LOCAL_CFLAGS := -std=c++11

Application.mk

NDK_TOOLCHAIN_VERSION := clang

APP_PLATFORM := android-9
APP_STL := c++_static
APP_CPPFLAGS := -fexceptions -frtti
APP_ABI := all

如果您在编译代码时仍然遇到问题,请显示您遇到的确切错误。

关于android - 用 clang 而不是 gcc 构建 android?和 clang STL 库而不是 gnuSTL 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970252/

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