1

我正在使用 ndk r7c 将一些 Windows C++ 移植到 ANSI 以在 Android 4.0.3 上使用。

原始代码设置了一个 UDP 客户端和一个数据包队列,它以设定的时间间隔检查它,以便当程序在其他地方忙时队列填满,因此主程序不会被捆绑轮询传入的数据包。代码相当长,所以我不会在这里发布它。

我不断收到消息:

In file included from C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/deque:65,
                 from C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/queue:61,
                 from jni/Tcan.h:5,
                 from jni/caneth_wrap.cpp:215:
C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/stl_deque.h: In member function 'void std::_Deque_base<_Tp, _Alloc>::_M_initialize_map(size_t)':
C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/stl_deque.h:498: error: expected unqualified-id before '(' token
In file included from C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/deque:68,
                 from C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/queue:61,
                 from jni/Tcan.h:5,
                 from jni/caneth_wrap.cpp:215:
C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/deque.tcc: In member function 'void std::deque<_Tp, _Alloc>::_M_reallocate_map(size_t, bool)':
C:/Android/android-ndk-r7c/sources/cxx-stl/gnu-libstdc++/include/bits/deque.tcc:820: error: expected unqualified-id before '(' token

我以前在编码时看到过 unqualified-id 消息,但从未找到导致它的确切答案。我尝试在 Tcan.h 的不同位置重新排列我的包含,但没有帮助。Tcan.h:5 是我拥有的#include <queue>. ndk 中是否存在与队列混淆的错误或我错过的内容?或者有谁知道双端队列中这个错误的可能原因?

谢谢

编辑:使用 ndk-r7b 没有区别。我不认为它会,但我想我还是会检查一下。

4

1 回答 1

1

可能是一个max尚未声明的宏的问题:检查这里的第一篇文章(它大约是 3-arg max,但问题似乎是一样的)。作为修复,您还可以尝试从 中删除std::前缀max,如此处的第一篇文章中所述

于 2012-05-01T21:55:36.613 回答