【发布时间】:2016-02-25 20:47:12
【问题描述】:
提前感谢您的帮助。
我正在尝试制作一个 NDK 项目并使用 IBinder 和 RefBase(looper、sp、wp 当然需要)。 但即使在链接之前,也会发生编译错误:
arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include/stdatomic.h:40:9:错误:“_Atomic”没有命名类型 typedef _Atomic _Bool atomic_bool;
那么 stdatomic.h 中的每个符号都无法识别。
我使用了一些 C++11 标志,如下所示,并尝试了一些随机 CFLAGS:
-D_GLIBCXX_USE_WCHAR_T -DUSE_CPUSETS
-std=c++11 -std=gnu++11 -pthread -frtti -fexceptions
我注意到stlport文件stdatomic.h没有包含其他头文件,所以我猜应该有一个或多个编译宏。
但我是 NDK 构建的新手,希望有人能给我一些关于这个问题的建议。
非常感谢@!!@
【问题讨论】:
-
您可能为 libbinder 和 libutils 提供
#include标头,它们不是 NDK 的一部分。这需要格外小心。您的标题是如何组织的? -
我会检查并发送反馈给您,抱歉回复晚了。
-
@Josefus.mv 这个问题的任何更新,因为我也面临同样的问题..你能发布答案吗?
-
@AlexCohn 如果我使用的是 libbinder 和 libutils,那么我需要注意什么?
-
@Explore:简而言之,您不需要 STL 来使用系统库,例如装订器。上面的编译错误与对 RefBase et al 的依赖无关。
标签: android c++ c++11 makefile android-ndk