arm-linux-androideabi-g++ 找不到 header cstdarg
arm-linux-androideabi-g++ can not find header cstdarg
尝试使用 arm-linux-androideabi-g++ 从 linux cross-compile 一个 android 应用程序,我得到一个错误,header 文件 cstdarg 不能找到了。
common.h:27:19: fatal error: cstdarg: No such file or directory
compilation terminated.
如果我查看 /usr/arm-linux-androideabi/include/,header 不存在,但存在其他 c++ header 文件。我该如何解决这个问题?
<cstdarg>
不是系统 header,因为它来自 C++ 标准库。看起来你错过了将 C++ headers 添加到命令行。它们位于 $ANDROID_NDK/sources/cxx-stl/
下。当然,请确保您使用 header 来实现适当的库。
您可能还需要包含 complier-specific C-headers(至少 <stdarg.h>
,因为它被 <cstdarg>
使用)。
一些标准 header 是 compiler-specific,因为它们使用了一些 compiler-specific 扩展、内在函数等。 <stdarg.h>
就是其中之一。由于它们的性质,将它们放在通用的 sysroot include 目录中没有多大意义。在 $ANDROID_NDK/toolchains/
目录下查找。
尝试使用 arm-linux-androideabi-g++ 从 linux cross-compile 一个 android 应用程序,我得到一个错误,header 文件 cstdarg 不能找到了。
common.h:27:19: fatal error: cstdarg: No such file or directory
compilation terminated.
如果我查看 /usr/arm-linux-androideabi/include/,header 不存在,但存在其他 c++ header 文件。我该如何解决这个问题?
<cstdarg>
不是系统 header,因为它来自 C++ 标准库。看起来你错过了将 C++ headers 添加到命令行。它们位于 $ANDROID_NDK/sources/cxx-stl/
下。当然,请确保您使用 header 来实现适当的库。
您可能还需要包含 complier-specific C-headers(至少 <stdarg.h>
,因为它被 <cstdarg>
使用)。
一些标准 header 是 compiler-specific,因为它们使用了一些 compiler-specific 扩展、内在函数等。 <stdarg.h>
就是其中之一。由于它们的性质,将它们放在通用的 sysroot include 目录中没有多大意义。在 $ANDROID_NDK/toolchains/
目录下查找。