2015-07-13 2 views
4

Я использую lua5.1 и подталкивание 1.58.0, чтобы попытаться построить Luabind-0.7.1-rc1. Все переменные окружения установлены правильно. Я искал ответ для этого примерно неделю без успеха.ошибка C2665 при создании Luabind

Всякий раз, когда я пытаюсь построить Luabind я получаю 20 из той же ошибки:

error C2665: 'boost::operator ==' : none of the 4 overloads could convert all the argument types 
s:\luabind-0.7.1-rc1\luabind\object.hpp 542 1 

Все ошибки, кажется, быть выброшены из последних двух строк перед #undef:

// Needed because of some strange ADL issues. 

#define LUABIND_OPERATOR_ADL_WKND(op) \ 
    inline bool operator op(\ 
     basic_iterator<basic_access> const& x \ 
    , basic_iterator<basic_access> const& y) \ 
    { \ 
     return boost::operator op(x, y); \ 
    } \ 
\ 
    inline bool operator op(\ 
     basic_iterator<raw_access> const& x \ 
    , basic_iterator<raw_access> const& y) \ 
    { \ 
     return boost::operator op(x, y); \ 
    } 

    LUABIND_OPERATOR_ADL_WKND(==) 
    LUABIND_OPERATOR_ADL_WKND(!=) 

#undef LUABIND_OPERATOR_ADL_WKND 

И вот (он повторяется следующим образом):

s:\luabind-0.7.1-rc1\luabind\object.hpp(542): error C2665: 'boost::operator ==' : none of the 4 overloads could convert all the argument types 
      s:\boost_1_58_0\boost\function\function_base.hpp(750): could be 'bool boost::operator ==(boost::detail::function::useless_clear_type *,const boost::function_base &)' 
      s:\boost_1_58_0\boost\function\function_base.hpp(738): or  'bool boost::operator ==(const boost::function_base &,boost::detail::function::useless_clear_type *)' 
      s:\boost_1_58_0\boost\function\function_base.hpp(809): or  'bool boost::operator ==<luabind::detail::basic_iterator<luabind::detail::basic_access>>(Functor,const boost::function_base &)' 
      with 
      [ 
       Functor=luabind::detail::basic_iterator<luabind::detail::basic_access> 
      ] 
      s:\boost_1_58_0\boost\function\function_base.hpp(800): or  'bool boost::operator ==<luabind::detail::basic_iterator<luabind::detail::basic_access>>(const boost::function_base &,Functor)' 
      with 
      [ 
       Functor=luabind::detail::basic_iterator<luabind::detail::basic_access> 
      ] 
      while trying to match the argument list '(const luabind::detail::basic_iterator<luabind::detail::basic_access>, const luabind::detail::basic_iterator<luabind::detail::basic_access>)' 

У кого-нибудь есть понимание или опыт h эта проблема? Что может быть причиной этой ошибки, как я могу ее исправить, и как я могу избежать ее в будущем?

+0

_ «Переменные окружения установлены правильно» _ не является полезным утверждением: давайте будем судьей того, что правильно установлено, а что нет, как вы, кто не смог определить, что произошло неожиданно неправильно! Покажите нам переменные окружения, я думаю, если вы считаете, что они важны. –

ответ

1

Вам нужно использовать более старую библиотеку форсирования. luabind 0.7.1 с 2008 года. Попробуйте версию Boost примерно в том же году. У меня была такая же проблема с luabind 0.8.1 и Boost 1.58.0.

В моем случае 1.55.0 работал отлично, и он работает с vs2013. По-видимому, более старые версии Boost необходимо было заплатить за vs2013.

1

Теперь вы можете переключиться на переключатель luabind 0.9 вместо использования версии 0.7.

Смежные вопросы