c++: address argument to atomic operation must be a pointer to _Atomic type
在引用boost/signals2.hpp的过程中出现了这个问题。
这个问题和编译器相关,在Android.bp和Android.mk中同时调用同一个编译文件竟会出现两个不同的结果,十分费解。
在C++11中不支持boost库类似_c11_atomic_init( &use_count, 1 )等类似的动作。
如何解决?
LOCAL_CFLAGS += \
-std=c++14 \
$(empty)
尝试解决。
再者可能是本地调用的其他一些.hpp文件中使用了违规使用了boost库中的一些内容,可以做这样的尝试:
- 将编译报错的文件仅留
#include <boost/signals2.hpp>
- 写一个最基础的main函数。
- 将此文件通过Android.mk参与编译,看是否编译通过。(一般一定能通过),基本上可以确定是自己文件改出来的问题。,之后保持main函数不动,依次注销引用的头文件,即可找出出问题的地方。