不知道,如果它是完全相同的問題(如果它仍然與您有關,近兩個月),但我遇到了使用Luabind綁定Bullet btTransforms的麻煩。舉例來說,這就給你描述了同樣的錯誤:
void bindBtTransform(lua_State *L) {
luabind::module(L)
[
luabind::class_<btTransform>("btTransform")
// constructors
.def(luabind::constructor<>())
// methods
// INCORRECT -------------------------------------------------------
.def("getOrigin", &btTransform::getOrigin)
];
return;
}
然而,當我給getOrigin()函數的完整簽名,它的工作:
void bindBtTransform(lua_State *L) {
luabind::module(L)
[
luabind::class_<btTransform>("btTransform")
// constructors
.def(luabind::constructor<>())
// methods
// CHANGE TO THIS-------------------------------------------------
.def("getOrigin", (const btVector3& (btTransform::*)() const)&btTransform::getOrigin)
];
return;
}
希望對你有用;當我做出改變時,我的問題就解決了。
我仍然收到錯誤,但只有當我爲btQuaternions定義乘法運算符時。我希望這是一個類似的修復。