gpt4 book ai didi

安卓NDK : Function va_start/va_end could not be resolved

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:22 25 4
gpt4 key购买 nike

我试图在我的项目中使用 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
[...]

eclipse 说:

[...]
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.> Project->Index->​​Rebuild 没有帮助。 :(

最佳答案

我的解决方案也不漂亮。但是在您删除错误标记 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

关于安卓NDK : Function va_start/va_end could not be resolved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com