DanielSefton
25-10-2007 22:02:33
I've spent hours trying to get my project to compile, and (I hope) I'm just one error away...
OpenRacer error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall OgreOde_Prefab::Vehicle::load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?load@Vehicle@OgreOde_Prefab@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function "public: void __thiscall OpenRacerFrameListener::changeCar(void)" (?changeCar@OpenRacerFrameListener@@QAEXXZ)
Any ideas?
I've made OgreOde_Prefab.lib a dependency, and still no luck.
For some reason the 'lib' directory in OgreODE\prefab\ was missing... So I had to download it from an unofficial CVS, and I'm not sure if it's compatible or not?
Does anyone know what SHOULD be in the OgreODE\prefab\lib directory?
Some sources say this:
-OgreOde_Prefab.dll
-OgreOde_Prefab.exp
-OgreOde_Prefab.lib
And Some sources say this:
-Debug\keep.me
-Release\keep.me
I am using VS2003.
Thanks for any help!
Daniel.
Aquatix
25-10-2007 23:53:13
Hi, Daniel!
Err, what do you mean by "unofficial CVS"??
It all just looks to me, that you are using a wrong version of OgreODE... Might be a VS2003 error, but unlikely.
DanielSefton
26-10-2007 00:27:49
rewb0rn
26-10-2007 01:00:12
the version you downloaded is outdated for a long time. get the latest ogreode version from the ogre cvs.
DanielSefton
26-10-2007 01:22:20
the version you downloaded is outdated for a long time. get the latest ogreode version from the ogre cvs.
Oh.
They seriously need to update the documentation...
Please could you point me to the latest CVS version? I want to make sure I download the right one
Thanks again!
Aquatix
26-10-2007 01:40:38
DanielSefton
26-10-2007 02:09:01
Ta!
I'll let you know how I get on tomorrow -- It's 2am, I need sleep
DanielSefton
26-10-2007 14:40:39
I am actually on the brink of ripping my hair out...
How do you download from the CVS?? The SourceForge browser allows you to download individual files... but not folders! I have downloaded TortoiseCVS, WinCVS, jCVS and I have no idea how to type that command and access the CVS in ANY of them.
Sorry, it's just I've never used it in my life. I've spent over 3 hours, and I still don't know how to access the CVS.
Please help
tuan kuranes
26-10-2007 14:47:15
Wait a few minutes and latest SDK will be udpated.
Still CVS is a must know
Aquatix
26-10-2007 14:47:23
I am actually on the brink of ripping my hair out...
lol, that's what I did, when I first got into CVS.
Actually, it's quite simple.
1) get TortoiseCVS
2) install it
3) right-click on a folder on your hard disk and choose "check-out"
4) enter ":pserver:anonymous@cvs.ogre3d.org:/cvsroot/ogre/ogreaddons/ogreode" as the server
5) hope, that it will work )))
DanielSefton
26-10-2007 14:59:49
When I try entering that, it says 'Error, CVS operation failed' and then prompts me with a password - I enter nothing in the field (since it's anonymous) and click ok, it doesn't work and pops up with the password field again.
I have no idea what's going on
DanielSefton
26-10-2007 15:57:43
Thanks turan, that saved me a lot of time
Right. The first error I got was:
c:\OgreODE\include\OgreOdeJoint.h(59): error C2065: 'dParamERP' : undeclared identifier
So I commented out that line.
I then got:
OpenRacer fatal error LNK1181: cannot open input file 'OgreOde_Prefab.lib'
That file was nowhere to be found, so I copied the OgreOde_Prefab.lib from the old SDK into the new \OgreODE\prefab\lib\release folder.
It then chucked out 15 unresolved external errors:
OpenRacer error LNK2001: unresolved external symbol "public: virtual bool __thiscall OgreOde::ForwardFixedInterpolatedStepHandler::step(float)" (?step@ForwardFixedInterpolatedStepHandler@OgreOde@@UAE_NM@Z)
OpenRacer error LNK2001: unresolved external symbol "public: virtual bool __thiscall OgreOde::StepHandler::frameEnded(struct Ogre::FrameEvent const &)" (?frameEnded@StepHandler@OgreOde@@UAE_NABUFrameEvent@Ogre@@@Z)
OpenRacer error LNK2001: unresolved external symbol "public: virtual bool __thiscall OgreOde::StepHandler::frameStarted(struct Ogre::FrameEvent const &)" (?frameStarted@StepHandler@OgreOde@@UAE_NABUFrameEvent@Ogre@@@Z)
OpenRacer error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall OgreOde::ForwardFixedInterpolatedStepHandler::ForwardFixedInterpolatedStepHandler(class OgreOde::World *,enum OgreOde::StepHandler::StepModeType,float,float,float,float)" (__imp_??0ForwardFixedInterpolatedStepHandler@OgreOde@@QAE@PAVWorld@1@W4StepModeType@StepHandler@1@MMMM@Z) referenced in function "public: __thiscall OpenRacerFrameListener::OpenRacerFrameListener(class Ogre::RenderWindow *,class Ogre::Camera *,float,class Ogre::Root *,class OgreOde::World *)" (??0OpenRacerFrameListener@@QAE@PAVRenderWindow@Ogre@@PAVCamera@2@MPAVRoot@2@PAVWorld@OgreOde@@@Z)
Etc.
Were these the right steps to take? What happened to the OgreOde_Prefab.lib file in the latest SDK?
//Edit: These are my additional dependencies: OgreMain.lib OgreOde_Core.lib OgreOde_Prefab.lib OIS.lib - do I need any more? Usually unresolved externals can be fixed with the addition of dependencies...
tuan kuranes
26-10-2007 16:07:00
'dParamERP' : undeclared identifier
means you're not using latest ODE.
Demo_GranTurismOgre fatal error LNK1181: cannot open input file 'OgreOde_Prefab.lib'
That file was nowhere to be found,
Then it didn't build... you have to find why.
It then chucked out 15 unresolved external errors:
old and new prefab lib are not compatible.
OgreMain.lib OgreOde_Core.lib OgreOde_Prefab.lib are neded.
DanielSefton
26-10-2007 16:21:20
Thanks for your help,
means you're not using latest ODE.
I am though - I'm using version 0.9, and I even downloaded it again from the website to make sure. I tried removing the comment, but it still displayed the same error.
old and new prefab lib are not compatible.
But where is the new prefab lib? The only contents in prefab\lib are the 'Debug' and 'Release' folders each with keep.me -- infact there are no library files at all
Aquatix
26-10-2007 16:28:04
infact there are no library files at all
exactly. coz you are actually compiling them. Just compile "prefabs" first.
tuan kuranes
26-10-2007 16:33:46
I am though - I'm using version 0.9, and I even downloaded it again from the website to make sure. I tried removing the comment, but it still displayed the same error.
Cannot be otherwise you wouldn't have the error.
Possible things to check :
- ODE_HOME is wrongly set. taht env var should be poiinting at 0.9
- mess with very old Ogre Ode.h incude and lib. have to either sort the include order, or just delete them from ogre SDK distribution.
DanielSefton
26-10-2007 18:27:44
When I try compiling prefabs, I get this:
OgreOde_Prefab fatal error LNK1181: cannot open input file 'OgreOde_Core.lib'
Then when I try compiling OgreOde_core, I get this:
c:\OgreODE\src\OgreOdeJoint.cpp(273): error C3861: 'dJointSetBallParam': identifier not found, even with argument-dependent lookup
Wouldn't it be much easier if you could download a precompiled version with all the library files
- ODE_HOME is wrongly set. taht env var should be poiinting at 0.9
Where is ODE_HOME?
This is so endless... I've spent 3 days and not successfully compiled anything
Aquatix
26-10-2007 18:43:57
Well, you see any compilation which involves external dependencies (e.g. your app requieres OgreODE), there are 2 parts to consider: headers and libraries.
Headers (or *.h files) just go to some directory, libraries (or *.lib files) go to another. Now, in your solution you have C/C++ and Linker. First one is for defining where the includes (or headers are). Go on, open it. There you will see a list (click ... to expand) of directories. Instead of usual "C:/Somedir/subdir/whatever.h" (known as absolute path) you will probobably see some "../../include" (relative path) or "$(OgreHome)/include" (a path with environmental variables. The EASIEST way for you is to click and show the path to the respective folder via your Explorer. Just go ahead and change all the paths into absolute. Then do the same with libraries.
Hope it helps. If not, just write down what you've got (and a screeny perhaps)
DanielSefton
26-10-2007 23:41:01
Here is what I have set up in my project:
[link expired]
Although that probably doesn't matter, because the only error generated is:
OgreOde_Prefab fatal error LNK1181: cannot open input file 'OgreOde_Core.lib'
It's the lib files I need (OgreOde_Core.lib and OgreOde_Prefab.lib). I think once I have those, the problem will be solved.
However, I cannot successfully compile either Prefab or Core. Here is the dependencies I have for Core:
[link expired]
I tried what you suggested (shown in the images) - it didn't make a difference for my app, but it changed the errors in OgreOde_Core to:
OgreOde_Core error LNK2019: unresolved external symbol "public: __thiscall OgreOde::DebugContact::~DebugContact(void)" (??1DebugContact@OgreOde@@QAE@XZ) referenced in function "public: void * __thiscall OgreOde::DebugContact::`scalar deleting destructor'(unsigned int)" (??_GDebugContact@OgreOde@@QAEPAXI@Z)
OgreOde_Core error LNK2019: unresolved external symbol "public: __thiscall OgreOde::DebugContact::DebugContact(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class OgreOde::World *)" (??0DebugContact@OgreOde@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorld@1@@Z) referenced in function "public: virtual void __thiscall OgreOde::Geometry::setDebugContact(bool)" (?setDebugContact@Geometry@OgreOde@@UAEX_N@Z)
OgreOde_Core error LNK2019: unresolved external symbol "public: bool __thiscall OgreOde::DebugContact::isEnabled(void)const " (?isEnabled@DebugContact@OgreOde@@QBE_NXZ) referenced in function "public: void __thiscall OgreOde::Geometry::updateDebugContact(void)" (?updateDebugContact@Geometry@OgreOde@@QAEXXZ)
....Etc.
OgreOde_Core fatal error LNK1120: 7 unresolved externals
Once I successfully compile OgreOde_Core and Prefab, will it generate the library files?
Thanks again!
Aquatix
27-10-2007 03:37:16
Hmm, well it just seems its easier to provide an SDK. I think Tuan already upped something. Did it have all the necessary libraries? Coz I didn't see it yet.
Anyways, don't have time now, but later on today will try to compile the libs for you, so that you don't have to mess with them.
You see, OgreOde rigth now is not exactly in the base shape (and so is Ode) in terms of support... very few people are still using it. So, perhaps if you don't like Ode for some specific feature, you'd move to another library, which has a better suppport? Say, Bullet, or Newton (but personally I find Newton to be too messy and complicated, especially if this is your 1st physics lib).
DanielSefton
27-10-2007 17:43:30
Well, I'm looking to develop an open source racing game called 'Open Racer'. Ideally I would like an engine that is sustainable and would be easy to expand. Bullet looks great, especially since it's improving at a fast rate - but I'm not convinced it would be good for a racing simulator (I could be wrong). Newton also looks good, but we need it to be open source. Which engine do you recommend for a racing game?
It's just food for thought really; I'll stick with ODE in the short term.
later on today will try to compile the libs for you
That would be a great help - I've lost all hope with compiling it myself. I will be over the moon if I can get this to work.
Here's the project homepage if you're interested:
http://www.openracer.org/
If you have a website, I'll gladly link to it - it's the least I can do...
Aquatix
27-10-2007 20:17:10
DanielSefton
27-10-2007 23:43:47
Brilliant!
I'm ALMOST there. The final errors are 2 unresolved externals and they seem to point to OgreOde_Loader.
Please could you upload OgreOde_Loader.lib & OgreOde_Loader_d.lib
You can use this: [link expired]
Password is [removed].
Cheers!!
Aquatix
28-10-2007 01:39:23
DanielSefton
28-10-2007 13:43:08
Hallelujah! It compiles!
<edited>
Although for some strange reason, it works fine on every other computer except mine. When I run it, it crashes unless I overwrite the DLL's again - I have absolutely no idea why.
Here's the files encase you wanted to see if it works on your computer:
http://www.pollenstudio.co.uk/downloads ... smogre.zip
Thank you so much for your help aquatix - I really appreciate it. I'm so happy now that I can actually start writing some code!
Aquatix
28-10-2007 16:09:52
Glad it helped!
Just checked that files - works straight away. However I've noticed you still have DevIL.dll Err, why is that? And what version of Ogre are you using?