Ode - Bullet Integration: Help on link errors

Ngwarai Mazike
Posts: 1
Joined: Sun Mar 26, 2006 11:48 am
Location: Harare, Zimbabwe

Ode - Bullet Integration: Help on link errors

Post by Ngwarai Mazike »

Dear All,

I am new to this forum and new to Bullet physics as well. I use ODE integrated into MATLAB as a mex. Setup works basically ok but inconsistently on body- trimesh collisions. Actually bodies fall through most of the trimeshes I have put up but a few work. The bullet integration, I think, can only improve on it by strengthening the collision detection.

I have used the sample integration and defined 4 gjk bodies in ODE, ie sphere, cylinder, cone and convex hull. I use MSVC 6 for development. The product is a mex dll for the MATLAB interface. I get the following link error on which I have no clue whats missing. Please help and thanks very much for contributions to this forum.

Linking...
Creating library Debug/mexSingle.lib and object Debug/mexSingle.exp
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library

mexSingle.obj : error LNK2001: unresolved external symbol "struct dxGeom * __cdecl dCreateConvex(struct dxSpace *,class CollisionShape *)" (?dCreateConvex@@YAPAUdxGeom@@PAUdxSpace@@PAVCollisionShape@@@Z)
Bullet3.lib(ConvexHullShape.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>
,class std::allocator<char> >(char const *)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z)
Debug/mexSingle.dll : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

mexSingle.dll - 3 error(s), 1 warning(s)

-----------------------------------------------
Regards
Ngwarai.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

It lacks the implementation of function dCreateConvex(...), which is in ode/src/collision_convex.cpp.

This file needs to be included in the project, and please add the define BULLET_CONVEX_SUPPORT in the C++ settings of your project.

Gambatte,
Erwin