首页 > 解决方案 > android NDK致命错误:stdio.h:没有这样的文件或目录#include

问题描述

我正在尝试在我的 Archlinux 中为我的 Qt android 项目构建 QPSQL 驱动程序,该驱动程序不断失败

configure: error: C preprocessor "/opt/AndroidSDK/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-cpp" fails sanity check

所以我尝试了简单的 hello World 程序:-

% /opt/AndroidSDK/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-cpp t.c
# 1 "t.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "t.c"
t.c:1:19: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
                   ^
compilation terminated.

这意味着 arm-linux-androideabi-cpp 预处理器不工作,对吧?但我来自 Qt Creator 和 Android Studio 的其他项目构建并运行良好

我该怎么办 ?我尝试将 NDK 更新到 18,结果很糟糕,因为他们用 clang 替换了 gcc。所以我有 r17b 和最新的 android SDK 。

标签: androidcqtandroid-ndkc-preprocessor

解决方案


$NDK/toolchains如果不传递一大堆标志以将它们指向 sysroot,则无法调用工具(启用这种用例是 r19 功能)。

使用https://developer.android.com/ndk/guides/standalone_toolchain为此类用途配置工具链。


推荐阅读