You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交叉编译libnfc至Aarch64 Android 13时遇链接错误求解决方案

解决libnfc交叉编译至AArch64 Android 13的链接错误

错误根源

链接器报错--fix-cortex-a53-843419 is only supported on AArch64 targets,说明要么交叉编译的目标架构未正确设置为AArch64,要么该链接参数被错误注入到了非AArch64的编译流程中。

分步解决方案

  • 确认交叉编译工具链配置
    在configure阶段必须明确指定AArch64的Android目标,使用NDK提供的对应工具链:

    ./configure --host=aarch64-linux-android --prefix=/your/install/path \
    CC=/path/to/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang \
    CXX=/path/to/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang++
    

    其中33是Android 13对应的API级别,需根据你使用的NDK版本调整。

  • 修正链接器参数的条件添加
    检查libnfc的Makefile或configure生成的配置文件,找到添加--fix-cortex-a53-843419的位置,确保该参数仅在AArch64目标下启用:

    ifeq ($(TARGET_ARCH),aarch64)
    LDFLAGS += --fix-cortex-a53-843419
    endif
    

    如果该参数是全局CFLAGS/LDFLAGS中硬编码的,直接移除或添加条件判断。

  • 验证NDK版本兼容性
    确保使用的NDK版本≥25,低版本NDK对Android 13的AArch64支持存在缺陷,可能导致链接器无法识别目标架构。

  • 清理并重新编译
    执行make clean清除旧编译产物,再重新运行configure和make,确保新配置完全生效。

验证编译结果

编译完成后,用file命令确认生成的库是AArch64架构:

file /your/install/path/lib/libnfc.so

输出需包含aarch64标识,证明目标架构正确。

内容的提问来源于stack exchange,提问作者Anh Trần Tuấn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:27:11