error identifier __builtin_addressof is undefined

报错

_Simulations/nbody : 
/usr/include/c++/7/bits/move.h(48): 
error: identifier "__builtin_addressof" is undefined #4

/usr/local/cuda/samples/5_Simulations/nbody $ sudo make
/usr/local/cuda-9.0/bin/nvcc -ccbin g++ -I../../common/inc  -m64    -ftz=true -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_70,code=compute_70 -o bodysystemcuda.o -c bodysystemcuda.cu
/usr/include/c++/7/bits/move.h(48): error: identifier "__builtin_addressof" is undefined
          detected during:
            instantiation of "_Tp *std::__addressof(_Tp &) [with _Tp=std::__make_not_void<char>]" 
(138): here
            instantiation of "_Tp *std::addressof(_Tp &) [with _Tp=std::__make_not_void<char>]" 
/usr/include/c++/7/bits/ptr_traits.h(142): here

解决方式

solved:

$sudo gedit /usr/include/c++/7/bits/move.h

修改:

namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION

  // Used, in C++03 mode too, by allocators, etc.
  /**
   *  @brief Same as C++11 std::addressof
   *  @ingroup utilities
   */
#ifndef __CUDACC__
  template<typename _Tp>
    inline _GLIBCXX_CONSTEXPR _Tp*
    __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
    { return __builtin_addressof(__r); }
#else
  template<typename _Tp>
    inline _GLIBCXX_CONSTEXPR _Tp*
    __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
    { return reinterpret_cast<_Tp*>(&const_cast<char&>(reinterpret_cast<const volatile char&>(__r))); }
#endif
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sophia_xw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值