Android NDK:无法解析函数 va_start / va_end

2024-03-29

我尝试在我的项目中使用 va_start 和 va_end 函数,但 eclipse 不想将其解析为函数。 gcc 编译整个项目没有错误...

[我的文件.cpp]

#include <stdio.h>
#include <stdarg.h>
[...]
inline void ShowDbgMsg( const char* str, ... )
{
    va_list argptr;
    va_start(argptr, str);
    vprintf(str, argptr);
    va_end(argptr);
}
[...]

[Android.mk]

[...]
LOCAL_C_INCLUDES := jni/pvrTools/ jni/igel/ $(STLPORT_BASE)/stlport
[...]

日食 说:

[...]
Description Resource    Path    Location    Type
Function 'va_start' could not be resolved   igel.comdef.h   /NativeProject/jni/igel    line 195 Semantic Error
Function 'va_end' could not be resolved igel.comdef.h   /NativeProject/jni/igel  line 203   Semantic Error
Function 'va_start' could not be resolved   igel.string.h   /NativeProject/jni/igel line 341    Semantic Error
Function 'va_end' could not be resolved igel.string.h   /NativeProject/jni/igel line 351    Semantic Error
[...]

所以,看起来 Eclipse 无法找到某些东西...如何解决这个问题? 提前致谢!

P.S.> 项目->索引->重建没有帮助。 :(


我的解决方案也不漂亮。但是,在删除错误标记 100 次之后,请尝试将此代码放在包含 stdlib.h 之前的某个位置。然后在 Project::Properties::C++ General::Paths and Symbols 中定义 ECLIPSEBUILD=1。

  

    #if ECLIPSEBUILD // this part is just to fix spurious Eclipse errors
    typedef __builtin_va_list va_list;
    #define va_start(v,l)   __builtin_va_start(v,l)
    #define va_end(v)   __builtin_va_end(v)
    #define va_arg(v,l) __builtin_va_arg(v,l)
    #if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L || defined(__GXX_EXPERIMENTAL_CXX0X__)
    #define va_copy(d,s)    __builtin_va_copy(d,s)
    #endif
    #define __va_copy(d,s)  __builtin_va_copy(d,s)
    typedef __builtin_va_list __gnuc_va_list;
    typedef __gnuc_va_list va_list;
    typedef va_list __va_list;
    #endif

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android NDK:无法解析函数 va_start / va_end 的相关文章

随机推荐