您好,谢谢您的配合。
我正在尝试使用xilinx petalinux工具链(aarch64-xilinx-linux-gcc版本7.2.0)在我的ubuntu 16.04机器上交叉编译应用程序,并且当我包括引用shared_ptr_atomic.h的标准库时(例如作为“内存”),我遇到了很多关于shared_ptr_atomic.h中的宏传递过多参数的编译错误。例如:
/opt/petalinux/2018.2/sysroots/aarch64-xilinx-linux/usr/include/c ++ / 7.2.0 / bits / shared_ptr_atomic.h:71:58: 错误:宏“ atomic_is_lock_free”传递了2个参数,但只需要 1个 atomic_is_lock_free(const __shared_ptr <_Tp,_Lp> * __p)
/opt/petalinux/2018.2/sysroots/aarch64-xilinx-linux/usr/include/c ++ / 7.2.0 / bits / shared_ptr_atomic.h:111:73: 错误:宏“ atomic_load_explicit”传递了3个参数,但只需要 2 atomic_load_explicit(const __shared_ptr <_Tp,_Lp> * __p,memory_order)
/opt/petalinux/2018.2/sysroots/aarch64-xilinx-linux/usr/include/c ++ / 7.2.0 / bits / shared_ptr_atomic.h:119:50: 错误:宏“ atomic_load”传递了2个参数,但仅接受了1个 atomic_load(const __shared_ptr <_Tp,_Lp> * __p)
当__shared_ptr模板作为参数传递给宏时,似乎与它有关,但是我不知道如何解决它。我已经阅读了这篇文章和链接,但我不认为这是同一个问题:stackoverflow atomic_load。仅供参考,传递给编译的参数是:
aarch64-xilinx-linux-g++ --sysroot=/opt/petalinux/2018.2/sysroots/aarch64-xilinx-linux -std=c++11 -g -fPIC -pthread -Wall -Werror -Iinclude -Ofast -c -o obj/RFControl.o src/RFControl.cpp
再次感谢,感谢您的帮助!