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
相关产品推荐
相关产品推荐

