arm-linux-androideAB-G++ 找不到标头 CSTDARG

arm-linux-androideabi-g++ can not find header cstdarg

本文关键字:CSTDARG 找不到 arm-linux-androideAB-G++      更新时间:2023-10-16

尝试使用 arm-linux-androideabi-g++ 从 linux 交叉编译 android 应用程序,我收到一个错误,找不到头文件 cstdarg。

common.h:27:19: fatal error: cstdarg: No such file or directory
compilation terminated.

如果我查看/usr/arm-linux-androideabi/include/,标头不存在,但存在其他 c++ 标头文件。如何解决此问题?

<cstdarg>不是

系统头,从某种意义上说,它来自标准库C++。看起来您错过了向命令行添加C++标头。它们被置于$ANDROID_NDK/sources/cxx-stl/.当然,请确保使用标头进行适当的库实现。

此外,您可能需要包含特定于编译器的 C 标头(至少<stdarg.h>因为它被 <cstdarg> 使用)。

一些

标准标头是特定于编译器的,因为它们使用一些特定于编译器的扩展、内部函数等。 <stdarg.h>就是其中之一。由于它们的性质,将它们放入通用 sysroot 包含目录没有多大意义。在$ANDROID_NDK/toolchains/目录下查看。