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库中的一些内容,可以做这样的尝试:

  1. 将编译报错的文件仅留#include <boost/signals2.hpp>
  2. 写一个最基础的main函数。
  3. 将此文件通过Android.mk参与编译,看是否编译通过。(一般一定能通过),基本上可以确定是自己文件改出来的问题。,之后保持main函数不动,依次注销引用的头文件,即可找出出问题的地方。
posted @ 2020-07-01 09:43  hansenn  阅读(725)  评论(0编辑  收藏  举报