Luabind+Visual Studio 2010
Автор: Wolfaka
Установил я вчера Microsoft Visual Studio 2010 RC. И начал переносить свой проект использующий luabind на новую Visual Studio. Как оказалось, luabind v0.9 не скомпилировался под ней.
Были такие ошибки:
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(163) : error C2 440: 'initializing' : cannot convert from 'int' to 'void *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(247) : see reference to function template instantiation 'std::_Pair_base<_Ty1,_Ty2>::_P air_base<_Ty,_Ty>(_Other1 &&,_Other2 &&)' being compiled with [ _Ty1=void *, _Ty2=int, _Ty=int, _Other1=int, _Other2=int ] C:\luabind-0.9\luabind-0.9\luabind/detail/object_rep.hpp(58) : see refer ence to function template instantiation 'std::pair<_Ty1,_Ty2>::pair<int,int>(_Ot her1 &&,_Other2 &&)' being compiled with [ _Ty1=void *, _Ty2=int, _Other1=int, _Other2=int ] c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(163) : error C2 439: 'std::_Pair_base<_Ty1,_Ty2>::first' : member could not be initialized with [ _Ty1=void *, _Ty2=int ] c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(166) : see declaration of 'std::_Pair_base<_Ty1,_Ty2>::first' with [ _Ty1=void *, _Ty2=int ]
Но к радости, проблема оказалась в довольно простой вещи:
std::pair<void*,void*>(mem, 0); или std::pair<void*, int>( 0, -1);
Таких мест в исходниках немного, а суть ошибки оказалась довольно простой. Все что нужно, это во всех местах, где встречаются такие вещи вместо 0 написать (void*)0.
std::pair<void*,void*>(mem, ( void*)0); или std::pair<void*, int>( ( void*)0, -1);
После таких изменений luabind будет работать.
Можете ничего не делать, а сразу качать luabind с моими изменениями.
Также я там изменил Jamroot, чтобы можно было компилировать без добавления переменных окружения в windows
(если уже установлены Boost и Lua в стандартные свои папки C:\Boost и C:\program files\lua).
Для компиляции можно сразу запустить добавленный мной батник (не хватает папки tools, ее взять из boosta):
luabind под Visual Studio 2010 RC
#Lua, #luabind, #Visual Studio, #скрипты
12 марта 2010
Комментарии [9]