Game Development Community

T3D 1.1a - I'm getting the same errors as Timothy

by Scottie Sirius · in Game Mechanics Kit · 12/15/2009 (2:59 pm) · 6 replies

New Project - Bullet option - VC++ 2008 Express
Here were my steps...

1. Copied GMK Source and Game directories over top of my directories.
2. Copied the physicsPack\Bullet_2_74 directory to the engine\lib directory.
3. Opened Project in VC++ 2008 Express. Clicked Build>Configuration Manager...unchecked IE Plugin.
4. Provided path to additional library directories in both the Debug and the Release version.
Project Properties->Linker->General->Additional Library Directories
Bullet
../../../../../engine/lib/bullet_2_74/lib
5. Provided names of libraries files to link. Copy/pasted the files below into the windows.
Project Properties->Linker->Input->Additional Dependencies
Bullet
debug: libbulletcollision_d.lib libbulletdynamics_d.lib libbulletmath_d.lib libbulletsoftbody_d.lib
release: libbulletcollision.lib libbulletdynamics.lib libbulletmath.lib libbulletsoftbody.lib
6. Provided path to include files in the Debug and the Release version.
Project Properties->C/C++->General->Additional Include Directories
Bullet
../../../../../engine/lib/bullet/include
7. Opened file engine\source\T3D\logickingMechanics\physics\physics.h.
Bullet
Uncommented line with
#define PHYSICS_BULLET
8. Opened script file scriptsAndAssets\server\scripts\logickingMechanics\physics.cs
Commented line
/$GMK::Physics::Lib = "Dummy";
Bullet
Uncommented line
$GMK::Physics::Lib = "Bullet";

Selected Debug at the top and clicked Build>Build Solution..
Then got all of the errors Timothy mentioned...shown below...


I've been trying to get this to work for 3 days now...any solution would be appreciated!

14> Creating library ../../../game/BC_DEBUG.lib and object ../../../game/BC_DEBUG.exp
14>sceneGraph.obj : error LNK2019: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z) referenced in function "public: void __thiscall SceneGraph::renderScene(enum ScenePassType,unsigned int)" (?renderScene@SceneGraph@@QAEXW4ScenePassType@@I@Z)
14>terrData.obj : error LNK2001: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z)
14>gameProcess.obj : error LNK2001: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z)
14>staticShape.obj : error LNK2001: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z)
14>tsStatic.obj : error LNK2001: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z)
14>interiorInstance.obj : error LNK2001: unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)" (?getPhysics@Physics@@SAPAV1@_N@Z)
14>sceneGraph.obj : error LNK2019: unresolved external symbol "public: void __thiscall Physics::renderCaller(struct ObjectRenderInst *,class SceneState *,class BaseMatInstance *)" (?renderCaller@Physics@@QAEXPAUObjectRenderInst@@PAVSceneState@@PAVBaseMatInstance@@@Z) referenced in function "public: void __thiscall SceneGraph::renderScene(enum ScenePassType,unsigned int)" (?renderScene@SceneGraph@@QAEXW4ScenePassType@@I@Z)
14>../../../game/BC_DEBUG.dll : fatal error LNK1120: 2 unresolved externals
14>Creating browse information file...

17>LINK : fatal error LNK1104: cannot open file 'libbulletcollision_d.lib'

#1
12/15/2009 (3:36 pm)
unresolved external symbol "public: static class Physics * __cdecl Physics::getPhysics(bool)

It means that file with Physics::getPhysics(bool) is missing and, probably is not attached to a project.


>3. Opened Project in VC++ 2008 Express. Clicked Build>Configuration >Manager...unchecked IE Plugin.

-----------
You have to add GMK *.cpp and *.h files to your project


Have you done this?
Check for the files in your VC++ project.
engine\source\T3D\logickingMechanics\physics\physics.h
engine\source\T3D\logickingMechanics\physics\physics.cpp

Have you add bullet files to the project as well?

Step 5
Add files C++ to your project.
Bullet
Add files from enginesourceT3DlogickingMechanicsphysicsbullet
#2
12/15/2009 (3:55 pm)
yes, I copied the ENTIRE engine/source directory to my 1.1 install in step 1 above.
I also copied the ENTIRE Game directory to my project.

Yes, I added the physicsPack\Bullet_2_74 directory to the engine\lib directory in step 2 above. After your email I deleted it and added the plain bullet directory.
Quote:It means that file with Physics::getPhysics(bool) is missing and, probably is not attached to a project.

Where might that file be?


#3
12/15/2009 (3:59 pm)
You have to add CPP and H to the VC++ project, not just copy the files.

Have you done similar thing in your Visual Studio for files mentioned in programmers guide?

engine\source\T3D\logickingMechanics\aiBot.h
engine\source\T3D\logickingMechanics\aiBot.cpp
engine\source\T3D\logickingMechanics\visualEffect.h
engine\source\T3D\logickingMechanics\visualEffect.cpp
engine\source\T3D\logickingMechanics\physics\physics.cpp
engine\source\T3D\logickingMechanics\physics\physics.h
engine\source\T3D\logickingMechanics\physics\physicsBody.cpp

.....

etc
#4
12/15/2009 (4:38 pm)
Add them where? in the ProjectName DLL/Source Files/Engine/T3D directory?

www.bloodclans.com/vc2008pic.jpg
#5
12/15/2009 (5:47 pm)
>Add them where? in the ProjectName DLL/Source Files/Engine/T3D directory?

Yes.
Actually directory doesn't matter, but Engine/T3D is good place.
#6
12/15/2009 (6:18 pm)
Awesome, got it compiled...
Thanks for all your help Yuri.