使用Xcode中的boost库编译项目时出错

时间:2016-05-29 15:54:23

标签: c++ xcode boost

我正在使用通过自制软件安装的boost并添加'usr / local / include'来搜索标头路径,并使用'usr / local / lib'来搜索库路径。它包括在内但编译时出现以下错误:

/usr/local/include/boost/move/unique_ptr.hpp:549:16: Unknown type name 'BOOST_RV_REF_BEG_IF_CXX11'

/usr/local/include/boost/move/unique_ptr.hpp:549:42: 'unique_ptr' cannot be the name of a parameter

/usr/local/include/boost/move/unique_ptr.hpp:549:59: Expected ')'

/usr/local/include/boost/move/unique_ptr.hpp:552:16: Use of undeclared identifier 'u'

这些是加强代码中的违规行:

   template <class U, class E>
   unique_ptr( BOOST_RV_REF_BEG_IF_CXX11 unique_ptr<U, E> BOOST_RV_REF_END_IF_CXX11 u
      BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_up_moveconv_constr<T BOOST_MOVE_I D BOOST_MOVE_I U BOOST_MOVE_I E>::type* =0)
      ) BOOST_NOEXCEPT
      : m_data(u.release(), ::boost::move_if_not_lvalue_reference<E>(u.get_deleter()))
   {
      //If T is not an array type, U derives from T
      //it uses the default deleter and T has no virtual destructor, then you have a problem
      BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor
                            <D, typename unique_ptr<U, E>::pointer>::value ));
   }

1 个答案:

答案 0 :(得分:2)

我收到此错误的原因是因为我将/ usr / local / include添加到&#39;标头搜索路径&#39;但不是用户标题搜索路径&#39;在xcode中。不知道为什么它会导致这个错误,也许并没有包含这个错误,而是将它添加到修复它中。

enter image description here

为了让提升能够充分发挥作用,我还必须将.dylib(来自/ usr / local / lib)添加到&#39; Link Binary With Libaries&#39;在构建阶段。

enter image description here