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

Linux Mint下Buildozer调试Kivy安卓应用遇__GNUC_PREREQ未定义错误

解决Buildozer编译Kivy应用时__GNUC_PREREQ未定义的问题

1. 检查并指定兼容的NDK版本

  • 打开项目根目录的buildozer.spec文件,找到android.ndk配置项,设置为兼容性较好的版本(如r25b)
  • 执行buildozer android clean清理旧编译缓存后重新编译

2. 临时切换为GCC编译(仅适用于含GCC的旧版NDK)

  • 在buildozer.spec中添加以下配置:
    android.c_compiler = gcc
    android.cpp_compiler = g++
    

3. 手动补全缺失的宏定义

  • 创建gnuc_compat.h头文件,内容如下:
    #ifndef __GNUC_PREREQ
    #define __GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
    #endif
    
  • 在buildozer.spec中注入该头文件:
    android.extra_cflags = -include /实际路径/gnuc_compat.h
    android.extra_cppflags = -include /实际路径/gnuc_compat.h
    

4. 更新系统工具链

  • 执行命令修复系统clang及依赖:
    sudo apt update && sudo apt install --reinstall clang gcc g++ build-essential
    

关键报错日志参考

error: '__GNUC_PREREQ' is not defined, evaluates to 0 [-Werror,-Wundef]

内容的提问来源于stack exchange,提问作者iamklager

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:14:56