Another new tutorial: Compiling OgreOde with Code::Blocks
Daerst
27-04-2008 12:52:22
Hi there,
I'm kind of new to Ogre and spent quite some time on figuring out how to get OgreODE working with Code::Blocks. So, here's what I came up with:
Compile OgreOde with Code::Blocks in the OgreWiki
I hope this helps and works for you all
Criticism, improvements and report about problems always welcome!
Daerst
rewb0rn
27-04-2008 14:59:34
Cool! Allthough I have no experience with Code::Blocks, I am sure this will find grantful appreciation. Thanks for your efforts!
Daerst
27-04-2008 15:20:47
Thanks to you rewb0rn

I guess I would've gone mad because of OgreOdeGeometry.h without your tutorial
rewb0rn
27-04-2008 15:54:24
You're welcome. I integrated the tutorial to the ogreode wiki sites, removed a typo and added some links.
Daerst
27-04-2008 16:28:17
Thanks

but the typo was quite alright, you have to add libOgreOde_loader.a while libOgreOde_core.a and libOgreOde_prefab.a are already there... The lib belongs to the filename.
rewb0rn
27-04-2008 16:40:56
oh may bad
Daerst
27-04-2008 20:45:21
Wow, CVS dropped today! I'm trying the howto with the SVN version of OgreODE now ^^
/*EDIT*/ Good news: still works well, it's just tricky to adjust the paths of the projects
maroxe
03-05-2008 21:27:20
trying to compile ogreNode following your tutorial, i get this errors:
..\..\obj\Release\src\OgreOdeJoint.o:OgreOdeJoint.cpp:(.text+0xba7)||undefined reference to `dJointSetBallParam'|
..\..\obj\Release\src\OgreOdeJoint.o:OgreOdeJoint.cpp:(.text+0xbd0)||undefined reference to `dJointGetBallParam'|
||=== Build finished: 2 errors, 0 warnings ===|
rewb0rn
04-05-2008 01:27:14
I deleted your other post due to redundance.
Daerst
07-05-2008 15:00:10
Try setting OGREODEEXPORT_LOADER in the compiler defines. If that doesn't help check your linker's search libraries again, I guess that was the most tricky part ^^
Good luck
leezer
07-05-2008 20:52:26
Hullo...
One of the steps in the Wiki is:
copy the output DLL from ogreaddons\ogreode\lib\Release (and later ogreaddons\ogreode\prefab\lib\Release) to $(OGRE_HOME)\bin\Release by hand
But when I go to look under that directory, I don't see a DLL, just a "keep.me" file (whatever that is). Everything seemed to compile and link fine; the only linker error that I got was:
Linking dynamic library: ..\..\lib\Debug\OgreOde_Core_d.dll
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lode
And I see from the above build log that there might be an "OgreOde_Core_d.dll" floating around somewhere...Is this the post compile copy script error you were talking about? Also, from the look of that build log, I'm compiling the Debug target, not the Release target (like you suggested I should do)...I am not very familiar with Code::Blocks, so I'm not really sure how to specify which to compile.
So any ideas on where my DLLs are ending up? Or whether or not they're even being created...
btw, I already added OGREODEEXPORT_LOADER to the compiler defines, and I'm still getting the same results.
thanks
Daerst
08-05-2008 10:42:57
You need to include ode in you link libraries:
Right click on the project -> Properties... -> Project's build options -> Linker Settings -> Link Libraries -> Add... and then search ode.lib
You can chose your build target (Debug or Release) in the Compiler toolbar, right beneath the Build/Run/Build and run/Rebuild/Abort-Buttons. If you can find it check whether View -> Toolbars -> Compiler is checked.
As I said I didn't get the Debug library to work, if you manage to the DLL will be in $(OGRE_HOME)\bin\Debug instead of $(OGRE_HOME)\bin\Release
//Addition: The Linker is trying to create your OgreOde_Core_d.dll (_d stands for debug), but it can't get created because it's missing the ode library. The post compile error says something like "Copy OgreOde_Core_d.dll from here to there... failed!" for me because the directories are not named correctly. Then your DLL was already created but just not copied to the Ogre bin-directory. I was too lazy to fix this and rather just copied the DLLs by hand... Shouldn't make a difference ^^
So try release mode or see whether you can satisfy the linker's hunger for libraries
Good luck
Daerst
leezer
08-05-2008 12:49:25
Okay; thanks for clearing up my linker error.
So, I checked in the build options for the core project. It seems like it's all set up to look for ode.lib; my search directories are $OGRE_HOME$\include and ode\include; that seems right. Link libraries are ode, libode.a, and ogremain (I took out the STLport ones as instructed). But, (as I've mentioned in my other post), it seems that the ode-.9 that I downloaded from ODE's website is...missing stuff. I scoured through all of the folders, but couldn't find ode.lib anywhere! Not even under the "lib" folder, which was empty. Meep!
Here's another thing; when exporting a working copy of ogreode from SVN, my "download" froze up half way through - it got stuck on the demos\media folder for some reason. So I had to go in and download the missing files by hand...still, I'm taking a look at the SVN ogreode directory right now, and I'm not seeing any ode.lib in there either (besides, it's probably in the ode-.9 download, right?). Ack.
So...I need to track down ode.lib and ode_SDK.cbp, which (as a search of $OGRE_HOME$ as a whole reveals) are nowhere to be found on my hd, heh.
Blarg; thanks for helping, Daerst.
Daerst
08-05-2008 12:59:24
A guy in the
neighbour thread had just the same problem - damn, gotta make it clearer in the wiki howto
Just download the binary pre-compiled release of ODE from
here and ignore the message. The lib\releasedll and \lib\releaselib folders contain ode.dll and ode.lib, they should help you

The missing ode_SDK.cbp is no problem. Code::Blocks searches for a project to compile ODE on its own, but there's no need for it because you've got the pre-compiled version.
I didn't have a problem with downloading OgreODE via SVN. Maybe just try it again or continue if you got all the files by hand.
Reblarg; no problem, dude
//EDIT: W00t, you are that guy from the neighbour thread! lol XD
rewb0rn
08-05-2008 13:38:50
nope, the same guy^^
leezer
08-05-2008 13:49:27
Coincidentally, that other guy was me...posting twice. =3
Okay! So, I get this message when I compile the Release...
Linking dynamic library: ..\..\lib\Release\OgreOde_Core.dll
Which makes me happy...but a couple seconds later...over 50 errors. Strange ones...errors that look like this:
..\..\ode\lib\releaselib/ode.lib(./obj/ode/ReleaseLib/collision_kernel.obj):\Code\ode\trunk\to:(.data[??_R0?AUdBase@@@8]+0x0): undefined reference to `??_7type_info@@6B@'
..\..\ode\lib\releaselib/ode.lib(./obj/ode/ReleaseLib/collision_kernel.obj):\Code\ode\trunk\to:(.data[??_R0?AUdxGeom@@@8]+0x0): undefined reference to `??_7type_info@@6B@'
..\..\ode\lib\releaselib/ode.lib(./obj/ode/ReleaseLib/collision_kernel.obj):\Code\ode\trunk\to:(.text[??1dxUserGeom@@UAE@XZ]+0x9): undefined reference to `_except_list'
These errors anger and enrage us! Heh
Okay, so maybe it's because I'm dll-challenged. Where would I specify the path to the ode.dll? Right now, I've just put that path anywhere I can think of; in both the compiler and linker search directories. Same with the path to ode.lib (..\..\ode\lib\releaselib). Yet these strange errors ensue...
Daerst
08-05-2008 14:01:42
Phew, I remember I had this error too... Adjusting the linker directories and link libraries is not that easy... I believe I had a library too much in my link libraries and after I removed it everything went well O_o
Are you now compiling the Release target?
Would you post everything you set as link libraries and linker directories? I will then try to reproduce and fix that error.
Did you set it for all build targets or just for the Release one (-> did you check Release on the left side in the "Project's build options..." window?)
May those accurst errors be banned for evermore!
leezer
08-05-2008 15:14:56
I am building the Release.
Here are the settings (I'll give you the build options for the Release):
Link libraries: ode, libode.a, ogremain
Search directories for Compiler: ..\..\ode\include, $OGRE_HOME\include, $OGRE_HOME\ogreaddons\ogreode\include, ..\..\ode\lib\releaselib, ..\..\ode\releasedll
Search directories for Linker: ..\..\ode\lib\Release, $OGRE_HOME$\bin\release, ..\..\ode\lib\releaselib, ..\..\ode\lib\releasedll
Yes, I put the path to the ode lib and dll everywhere -___-
The debug settings are the same, except wherever there's a "Release", it's..."Debug" (funny how that works out).
I checked both, so I have settings for both the Debug and the Release specified (and like I said, they're pretty much identical). I do not have settings for all build targets though. (i.e. if you click on the project name above the Debug and Release categories, there are no linker/compiler libraries/directories/etc. specified. They only show up when you click on Debug or Release).
Here's kind of a random question: what is the difference between running an application in debug mode vs. release mode? I've set up a simple scene in a different project (to prepare for implementing ogreODE), and I've been running it in Debug mode all this time! So, I decided to compile and run the Release...but now my application crashes when it starts up...whereas in Debug mode, it ran perfectly. ...What's could be in the Release settings that's not in the Debug to cause such crash-age? @__@
...
PiCroft
08-05-2008 15:23:01
Debug is used to run the program using breakpoints, i.e. to allow you to monitor and step-through your program.
Release doesn't permit this, it removes a lot of stuff from the final .exe that makes it run faster.
I can't say exactly what your problem is, but I do know that Ogre, for example, requires different .lib and .dll files for debug and release (_d denotes debug files for example).
leezer
08-05-2008 15:53:03
I see...
Well, taking a look at my Release and Debug build settings, both seem to be pretty analogous. The Release uses OgreMain and OIS, the debug uses OgreMain_d and OIS_d. Both have $OGRE_HOME$\bin\$(TARGET_NAME) as the linker directory. I'm not sure what this means, but...apparently it's good enough for the Debug but not the Release. I searched for similar topics in the main forum (Debug working, Release not), and got the sense that some people use the Debug-compiled code with the release dlls/libs, or something like that. But I'm not very experienced with all of this, so it kind of...didn't register in my brain.
[sigh] And I wanted to get a higher framerate too...meh.
Daerst
08-05-2008 16:33:47
The linker directories seem alright, but what about the link libraries?
leezer
08-05-2008 17:19:10
I'm not sure what you mean...
Isn't that: ode, libode.a, and ogremain? I guess codeblocks takes the .lib extension off of these...so...--> ode.lib, ogremain.lib, libode.a (whatever .a means...this one is under $OGRE_HOME$\include though, so codeblocks should be able to find it).
Am I off the mark here?
leezer
08-05-2008 17:26:33
Aderrrrp...
$OGRE_HOME$\lib, not $OGRE_HOME$\include. I tacked on this directory to my linker directories...and PRESTO! 50 errors knocked down to only 2! Excellent, I'm on the right track. The remaining two errors;
Creating library file: ..\..\lib\Release\libOgreOde_Core.a
..\..\obj\Release\src\OgreOdeJoint.o:OgreOdeJoint.cpp:(.text+0xba7): undefined reference to `dJointSetBallParam'
..\..\obj\Release\src\OgreOdeJoint.o:OgreOdeJoint.cpp:(.text+0xbd0): undefined reference to `dJointGetBallParam'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 2 seconds)
2 errors, 0 warnings
...will keep you updated...
Daerst
08-05-2008 18:34:43
//EDIT:
omg - forget what I said, complete nonsene. I'm gonna compile OgreODE once more and document all the changes I make to the directories.
//EDIT2:
Ok... I think I have gloriously conquered OgreODE... I'm gonna check it once again and if it works the "change directories"-part is indeed easier than I thought... shoul have documented it well in the first place... XD Give me some more minutes.
Daerst
08-05-2008 19:11:43
Okay, got it.
OgreOde_Core RELEASE:
Linker settings -> Link libraries:
Delete stlport.5.0
Search directories -> Compiler:
Delete $(OGRE_HOME)\stlport\stlport
Add $(OGRE_HOME)\ogreaddons\ogreode\include
Search directories -> Linker:
Change ..\..\ode\lib\Release to ..\..\ode\lib\ReleaseDLL
Compiles and links fine for me - even for the Debug target (with ..\..\ode\DebugDLL of course)!1
Prefab and Loader also compile well in both Release and Debug -> Wiki article is updated with detailed information on changing the directories.
Daerst
leezer
08-05-2008 21:19:18
Hey man, works like a charm!! Tons of thanks!!
You don't mention adding "ogreaddons\ogreode\loader\include" to the OgreOde_loader compiler search directories though...I think that directory is needed as well, but my mind is kind of overrun with directories right now, so I can't remember O_O.
Now I'm trying to get one of the demos up and running (one of the two that was in OgreOde_SDK.workspace)...
I followed the last part of the Wiki (added OIS and OgreOde_loader.a to the linker libraries for both Debug and Release)...CodeBlocks yelled at me for still having STLport in there, so I removed the library and search directories that mentioned it. Then CodeBlocks yelled at me because it couldn't find OgreOde_Loader.h, so I plugged $(OGRE_HOME)\ogreaddons\ogreode\loader\include into the compiler search directories, which seemed to get rid of that problem. But now I'm left with this pesky error:
Linking executable: ..\..\bin\Debug\OgreOdeDemo_Landscape.exe
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lOgreOde_loader
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
You mentioned you had to change resources.cfg to get the demos running? My compile copy scripts aren't working either, so...how did you end up modifying the .cfg?
Long story short, now that I have all of those DLLs generated and in the right place (whew), I'd like some sample code or some sort of ODE tutorial for making my first OgreODE application thingy. =3
Anywhoo...THANX FOR THE WIKI!!
Daerst
08-05-2008 22:01:34
You're right, thanks for the loader-hint!
You should take a look at the SimpleScenes demo, I think that's the most complete one :p
Linking executable: ..\..\bin\Debug\OgreOdeDemo_Landscape.exe
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lOgreOde_loader
If the linker can't find the library, give it the correct linking path

(something like $(OGRE_HOME)\ogreaddons\ogreode\loader\lib).
You also have to change the output directories in the SimpleScenes demo. They are set to Debug|Win32 and Release|Win32. I still wonder which drunk man is responsible for that, because windows doesn't allow a | in filenames -.-
You have to copy all the files from $(OGRE_HOME)\bin\Release (or Debug) into $(OGRE_HOME)\ogreaddons\ogreode\demos\SimpleScenes\bin\release (or Debug). He will complain, so copy the media directory from $(OGRE_HOME)\media to the SimpleScenes folder. Adjust the resource.cfg so that he also finds ogreode's own media directory (add the line FileSystem=../../../media)... That's it I guess
Also, starting the exe out of Code::Blocks didn't work for me because he tried to run it in a different dir and couldn't find the configs, so run it directly from the bin\Release folder.
For the Release target, the following did the job for me:
LINK LIBRARIES:
OgreMain
OgreOde_Core
OgreOde_Prefab
OgreOde_Loader
OIS
COMPILER DIRECTORIES:
$(OGRE_HOME)\ogreaddons\ogreode\include
$(OGRE_HOME)\ogreaddons\ogreode\prefab\include
$(OGRE_HOME)\ogreaddons\ogreode\ode\include
$(OGRE_HOME)\include
$(OGRE_HOME)\Samples\include
$(OGRE_HOME)\ogreaddons\ogreode\loader\include
..\..\include
LINKER DIRECTORIES:
$(OGRE_HOME)\bin\release
..\..\..\..\lib\Release
..\..\..\..\prefab\lib\Release
..\..\..\..\loader\lib\Release
Hope you get it working, glad that I could help you
leezer
09-05-2008 00:02:12
Hmmm...forgive me for being noobish here, but where is the said "resource.cfg"? Is it a file somewhere? Because a search of $(OGRE_HOME) yields no such file. Or perhaps it's a setting in Code::Blocks?
As is (without the resource.cfg modification), I'm getting odd errors pertaining to the Vector3 class.
../../include/SimpleScenes_Buggy.h:42: error: use of `Vector3' is ambiguous
c:/OgreSDK/include/OIS/OISPrereqs.h:201: error: first declared as `class OIS::Vector3' here
c:/OgreSDK/include/OgreVector3.h:47: error: also declared as `class Ogre::Vector3' here
../../include/SimpleScenes_Buggy.h:42: error: `Vector3' was not declared in this scope
../../include/SimpleScenes_Buggy.h: In member function `void SimpleScenes_Buggy::changeCar()':
../../include/SimpleScenes_Buggy.h:111: error: use of `Vector3' is ambiguous
c:/OgreSDK/include/OIS/OISPrereqs.h:201: error: first declared as `class OIS::Vector3' here
c:/OgreSDK/include/OgreVector3.h:47: error: also declared as `class Ogre::Vector3' here
../../include/SimpleScenes_Buggy.h:111: error: `Vector3' was not declared in this scope
Like this (and there are about 46 more =P). Doesn't seem to be a linker error per se...nor an include error (to me anyway). Did you run into a similar problem?
Daerst
09-05-2008 00:46:07
The file is actually called resources.cfg and is located in $(OGRE_HOME)\bin\Release. It locates the meshes used in the application and is needed after starting the application (so after compiling AND linking

)
Did you open $(OGRE_HOME)\ogreaddons\ogreode\demos\SimpleScenes\scripts\CodeBlocks\Demo_SimpleScenes.cbp?
Did you apply all the settings from my last post?
Because it all worked well for me...
As you said it's not a linker error, so the problem must be something with the compiler include stuff.
Daerst
leezer
09-05-2008 03:32:34
I followed your instructions to the letter. I even tried exchanging OgreOde_Core with libOgreOde_Core.a (and so on with the rest of them), but that didn't seem to make a difference. The problem here is that the class Vector3 is defined in two different places: Ogre::Vector3 in OgreVector3.h and OIS::Vector3 in OISPrereqs.h.
Does your project see both of these headers as well, or just one?
Do you think I have a bad version of Demo_SimpleScenes.cbp?
Daerst
09-05-2008 11:30:30
Mh... I just tried it with the Debug target, and just adding ..\..\loader\include to the compiler's paths left me with no compiler errors (sure, a bunch of linker errors but thats not the point).
The OISPrereqs.h file is also included (indirectly by OIS\OIS.h) but its not a problem here.
You could just try replacing Vector3 by Ogre::Vector3 in the cases where he complains.
Oligoatria
14-07-2008 16:53:53
Problem with OgreOde_Loader
Oligoatria
14-07-2008 16:55:05
First of all sorry for my bad english.
I follow this guide, so i use OgreSDK 1.4.7, OgreOde (taken from
http://tuan.kuranes.free.fr/Ogre.html#OgreOde), ode-0.9.
I use Code::Blocks 8.02.
Following the tutorial i compile OgreOde_Core, tiny_xml, OgreOde_Prefab. I have problem with OgreOde_loader.
I have imported the project from that in VC8 format (i tried with all the 3 projects: CVS, source, SDK). I have changed the compile and linking directories, but the result is this:
BUILD LOG
-------------- Build: Release Win32 in OgreOde_Loader ---------------
Linking dynamic library: ..\..\lib\Release Win32\OgreOde_Loader.dll
Info: resolving Ogre::StringUtil::BLANK by linking to __imp___ZN4Ogre10StringUtil5BLANKE (auto-import)
Info: resolving Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME by linking to __imp___ZN4Ogre20ResourceGroupManager30AUTODETECT_RESOURCE_GROUP_NAMEE (auto-import)
Info: resolving Ogre::Matrix4::IDENTITY by linking to __imp___ZN4Ogre7Matrix48IDENTITYE (auto-import)
Info: resolving Ogre::Vector3::ZERO by linking to __imp___ZN4Ogre7Vector34ZEROE (auto-import)
Info: resolving vtable for Ogre::MeshPtrby linking to __imp___ZTVN4Ogre7MeshPtrE (auto-import)
Info: resolving Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME by linking to __imp___ZN4Ogre20ResourceGroupManager27DEFAULT_RESOURCE_GROUP_NAMEE (auto-import)
Creating library file: ..\..\lib\Release Win32\libOgreOde_Loader.a
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x2fa): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader8loadFileERKSs'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x360): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader11parseObjectEPK9TiXmlNodeRKSsS5_'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x3f6): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseVehicleEPK9TiXmlNodeRKSsS5_'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x44f): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseRagdollEPK9TiXmlNodeRKSsS5_'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x4a8): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader20parseCompositeObjectEPK9TiXmlNodeRKSsS5_'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x4fe): undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader17parseSingleObjectEPK9TiXmlNodeRKSsS5_'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x25c9): undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x265e): undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 4 seconds)
8 errors, 0 warnings
BUILD MESSAGES
||=== OgreOde_Loader, Release Win32 ===|
||Info: resolving Ogre::StringUtil::BLANK by linking to __imp___ZN4Ogre10StringUtil5BLANKE |
||Info: resolving Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME by linking to __imp___ZN4Ogre20ResourceGroupManager30AUTODETECT_RESOURCE_GROUP_NAMEE |
||Info: resolving Ogre::Matrix4::IDENTITY by linking to __imp___ZN4Ogre7Matrix48IDENTITYE |
||Info: resolving Ogre::Vector3::ZERO by linking to __imp___ZN4Ogre7Vector34ZEROE |
||Info: resolving vtable for Ogre::MeshPtrby linking to __imp___ZTVN4Ogre7MeshPtrE |
||Info: resolving Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME by linking to __imp___ZN4Ogre20ResourceGroupManager27DEFAULT_RESOURCE_GROUP_NAMEE |
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x2fa)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader8loadFileERKSs'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x360)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader11parseObjectEPK9TiXmlNodeRKSsS5_'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x3f6)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseVehicleEPK9TiXmlNodeRKSsS5_'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x44f)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader12parseRagdollEPK9TiXmlNodeRKSsS5_'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x4a8)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader20parseCompositeObjectEPK9TiXmlNodeRKSsS5_'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x4fe)||undefined reference to `_imp___ZN14OgreOde_Loader9DotLoader17parseSingleObjectEPK9TiXmlNodeRKSsS5_'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x25c9)||undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'|
..\..\obj\Release Win32\src\OgreOdeDotLoader.o:OgreOde_Loader.cpp:(.text+0x265e)||undefined reference to `_imp___ZNK14OgreOde_Loader9DotLoader20parseRagdollSettingsEPN14OgreOde_Prefab7Ragdoll12BoneSettingsEPKv'|
||=== Build finished: 8 errors, 0 warnings ===|
I tried for many hours, but for now i don't obtain any results.
I also tried to use libOgreOde_Loader.a with the demo GranTurismOgre, but it asked OgreOde_Loader.dll.
I report now some information about the project OgreOde_Loader:
files: OgreOdeDotLoader.cpp
OgreOdeDotLoader.h
OgreOde_Loader.h
OgreOde_LoaderPreReqs.h
link libraries: OgreOde_Core
OgreOde_Prefab
OgreMain
tinyXml
about the directories, i followed the the guide.
Thanks a lot.
Oligoatria
dermont
14-07-2008 17:05:34
Oligoatria
14-07-2008 19:06:35
thank you very much. Now it compile both OgreOde_loader and demos. It was only necessary to add that define.
Hi everyones,
I'm try to compile OgreCore.
What i'm using:
Ogre 1.6.0
Ode pre-compiled library 0.9
OgreOde from SVN, i got all files from:
http://ogreaddons.svn.sourceforge.net/v ... k/ogreode/
I followed step by step the tutorial:
http://www.ogre3d.org/wiki/index.php/Co ... de::Blocks from "Introduction" to "OgreOde_core and OgreOde_prefab".
I linked ode libraries in project :
ode/debuglib/ode.lib and
ode/realeaselib/ode.lib
I have same folder than tutorial too...
I can't compile and here is the result of the build:
-------------- Build: Debug in OgreOde_Core ---------------
Compiling: ..\..\src\OgreOdeBody.cpp
In file included from c:/OgreSDK/include/OgreMemoryAllocatorConfig.h:189,
from c:/OgreSDK/include/OgrePrerequisites.h:409,
from c:/OgreSDK/include/Ogre.h:32,
from c:/OgreSDK/ogreaddons/ogreode/include/OgreOdePreReqs.h:4,
from c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeWorld.h:4,
from C:\OgreSDK\ogreaddons\ogreode\src\OgreOdeBody.cpp:4:
c:/OgreSDK/include/OgreMemoryStdAlloc.h: In static member function `static void* Ogre::StdAlignedAllocPolicy<Alignment>::allocateBytes(size_t, const char*, int, const char*)':
c:/OgreSDK/include/OgreMemoryStdAlloc.h:116: warning: statement has no effect
c:/OgreSDK/include/OgreMemoryStdAlloc.h:116: warning: statement has no effect
c:/OgreSDK/include/OgreMemoryStdAlloc.h:116: warning: statement has no effect
In file included from c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeWorld.h:4,
from C:\OgreSDK\ogreaddons\ogreode\src\OgreOdeBody.cpp:4:
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdePreReqs.h: At global scope:
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdePreReqs.h:35: error: `dTriIndex' does not name a type
In file included from c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeGeometry.h:7,
from C:\OgreSDK\ogreaddons\ogreode\src\OgreOdeBody.cpp:8:
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:18: error: expected `,' or `...' before '*' token
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:18: error: ISO C++ forbids declaration of `TriangleIndex' with no type
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:30: error: ISO C++ forbids declaration of `TriangleIndex' with no type
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:30: error: expected `;' before '*' token
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:32: error: expected `;' before "unsigned"
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:42: error: ISO C++ forbids declaration of `TriangleIndex' with no type
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeTriangleMeshData.h:42: error: expected `;' before '*' token
In file included from C:\OgreSDK\ogreaddons\ogreode\src\OgreOdeBody.cpp:8:
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeGeometry.h:388: error: expected `,' or `...' before '*' token
c:/OgreSDK/ogreaddons/ogreode/include/OgreOdeGeometry.h:391: error: ISO C++ forbids declaration of `TriangleIndex' with no type
C:\OgreSDK\ogreaddons\ogreode\src\OgreOdeBody.cpp:854:2: warning: no newline at end of file
Process terminated with status 1 (0 minutes, 3 seconds)
10 errors, 4 warnings
Someone could help me?
Thanks for support
Bye
Toum
dermont
05-02-2009 06:32:05
Use a more recent version of ode e.g. 0.10.1 ( version 0.11 appears to work fine as well).
Hello,
I tried another way to compile ogreode.
Codeblock 8.02
Ogre 1.6.1
ode-0.11
last
ogreode from SVN TRUNK
1 - I compiled ode 0.11. Next i got 2 .lib files:
libode_single.a and
libode_singled.a
2 - I'am trying to compile ogreode following this tutorial:
http://www.ogre3d.org/wiki/index.php/Co ... de::Blocks
3 - Moreover i link
libode_single.a and
libode_singled.a to my "Linker settings -> Link libraries"
I got an error:
ld.exe||cannot find -lode|
||=== Build finished: 1 errors, 9 warnings ===|
Thanks for support.
Toum !
dermont
05-03-2009 20:19:39
You probably need to remove ode / libode.a from your "Linker settings -> Link libraries".