arm-linux-androideabi -g ++找不到头文件cstdarg

时间:2017-11-06 16:01:06

标签: android c++ linux android-ndk cross-compiling

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

{{1}}

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

1 个答案:

答案 0 :(得分:1)

<cstdarg>不是系统头,因为它来自C ++标准库。您似乎错过了将C ++标头添加到命令行。它们位于$ANDROID_NDK/sources/cxx-stl/下。当然要确保您使用标头来实现适当的库。

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

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