本文主要是介绍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 undefineddetected during:instantiation of "_Tp *std::__addressof(_Tp &) [with _Tp=std::__make_not_void<char>]"
(138): hereinstantiation 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); }
#elsetemplate<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
这篇关于error identifier __builtin_addressof is undefined的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!