Ogre SDK 1.2 RC2 for Code::Blocks + MingW + STLPort

Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.
nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Ogre SDK 1.2 RC2 for Code::Blocks + MingW + STLPort

Post by nfz »

Ogre 1.2 RC1 SDK for Code::Blocks + MingW + STLPort

http://prdownloads.sourceforge.net/ogre ... e?download
*** NOTE: This SDK uses STLPort instead of libstdc++ with MingW.

Why did I use STLPort instead of libstdc++ v3 that comes with MingW?

MingW will statically link libstdc++ (the library portion, not the STL) to each build ie each dll or exe. This creates a problem when passing strings and any stream types across dll's. Because the static linking has each copy of libstdc++ managing its own strings and streams, passing a string/stream to another dll and then having it modified there will trash memory. Ogre has several dll's and does pass strings and streams around. Do a debug build of Ogre with libstdc++ and then run in gdb and you find out quickly that a crash occurs in OgrePlatform_d.dll after the config window closes when it tries to modify/deallocate a string passed to it from OgreMain.dll.

A release build using libstdc++ "seems" to run fine for simple Ogre demos but if you start passing a lot of Ogre strings across dll's in a more complicated app, the app starts to misbehave after a while and crashes occur.

You could rebuild libstdc++ as a dll so that there is only one place where strings and streams are being managed.

That is what I did several months ago and it does solve the problem. But there were still some problems and doing the modifications to get a dll build were a pain in the butt. Having used STLPort with vc6 back in 2003 I thought I would give it a try with MingW. STLPort 5.0.1 built out of the box with gcc 3.4.5 and was painless to setup up and use to build the dependencies and Ogre. STLPorts license is very clear too but the license for libstdc++ as a dll seems not so clear.

The MingW team has talked about supplying libstdc++.dll for many years (since 2000) but many roadblocks have prevented this.
Some links you can read about the issue:
http://sourceforge.net/mailarchive/mess ... d=14918030
http://sourceforge.net/mailarchive/mess ... d=12649857
http://sourceforge.net/mailarchive/mess ... d=12648237
http://sourceforge.net/mailarchive/mess ... d=14837422
http://www.cygwin.com/ml/cygwin/2005-10/msg00083.html

Onto the Ogre SDK:

What you need to provide that is not supplied in the SDK is the following:
The SDK was built and tested with the following:
Code::Blocks - latest Nightly Build
DO NOT USE Code::Blocks 1.0 RC2 or earlier, you must use the Nightly build or build from svn HEAD.
http://forums.codeblocks.org/
You will have to login to the forum to see the Nightly Build section.

DirectX 9.0c Feb 2006 edition
MingW Environment:
g++ 3.4.5 http://prdownloads.sourceforge.net/ming ... z?download
gcc core 3.4.5 http://prdownloads.sourceforge.net/ming ... z?download
win32api 3.6 http://prdownloads.sourceforge.net/ming ... z?download
binutils 2.16.91 http://prdownloads.sourceforge.net/ming ... z?download
mingw runtime 3.9 http://prdownloads.sourceforge.net/ming ... z?download
gdb 6.3.2 http://prdownloads.sourceforge.net/ming ... e?download


What the SDK includes:
The Ogre Core libraries and plugins:

Debug files:
Ogre dll's:
OgreMain_d.dll
OgrePlatform_d.dll
Plugin_BSPSceneManager.dll
Plugin_CgProgramManager.dll
Plugin_OctreeSceneManager.dll
Plugin_ParticleFX.dll
RenderSystem_Direct3D9.dll
RenderSystem_GL.dll
OgreGUIRenderer_d.dll

dependencies dll's:
ilu.dll
devil.dll
cg.dll
zlib1.dll
CEGUIBase_d.dll
CEGUIFalagardBase_d.dll
CEGUITaharezLook_d.dll
CEGUIWindowsLook_d.dll
libstlportstlg.5.0.dll

static libs:
libOPCODE.a
libode.a

Release files:
Ogre dll's:
OgreMain.dll
OgrePlatform.dll
Plugin_BSPSceneManager.dll
Plugin_CgProgramManager.dll
Plugin_OctreeSceneManager.dll
Plugin_ParticleFX.dll
RenderSystem_Direct3D9.dll
RenderSystem_GL.dll
OgreGUIRenderer_d.dll

dependencies dll's:
ilu.dll
devil.dll
cg.dll
zlib1.dll
CEGUIBase.dll
CEGUIFalagardBase.dll
CEGUITaharezLook.dll
CEGUIWindowsLook.dll
libstlport.5.0.dll

static libs:
libOPCODE.a
libode.a

Dependencies and their version numbers used to build the SDK:
CEGUI 0.4.1 + STLPort
zlib 1.2.3
zziplib 0.13.38
Devil 1.6.8 cvs - ogre log says 1.6.7
Cg 1.4
FreeType 2.1.10
STLPort 5.0.1
DX9.0c SDK Feb 2006

Note: some may notice that there are very few import libs included in the SDK. This is because MingW's linker (ld) can link directly to a dll that was built by it (just like on linux with gcc(ld)). This way of linking is faster too.

All header files (*.h) for the libs/dll are included
Ogre Manual in HTML format
Ogre API Reference in the form of windows help file (.chm)
Source code and project files for 30 demos that you can compile and run as a confidence test of the SDK installation and to see what Ogre can do.

Installation size is 470 Megs after the installer decompresses

Installation
Run OgreSDKSetup1.2.0_RC1_CBMingW_STLP.exe which will install the Ogre SDK into c:\OgreSDK if you don't change the installation directory.

After the installer finishes, you should do a confidence test to make sure MingW and Code::Blocks are setup properly. If the dev tools are setup correctly you should be able to build all the demos in debug and release with a few clicks of the mouse. Ya, I know, I should talk about how to setup MingW and the Nightly Build of Code::Blocks but that will have to be covered later (run out of time now) or you can read the Mingw and Code::Blocks websites to figure out how.

launch Code::Blocks and then open Samples.workspace in C:\OgreSDK\Samples directory. Select build workspace in the build menu. Both debug and release targets will be built and takes about 20 minutes to do all demos on a Athlon XP 2000+ with 512K ram. An Atholon 64 4000 with 1Gig ram takes 7 min.

To run a demo within CB, right click on the demo in the project listing, then select Activate Project. You can now do Ctrl-F10 or click on the blue arrow (looks like a play button) beside the blue gear. A window will probably popup if target is set to all asking you to select Debug or release.

Known bugs:
- apparent memory leaks but they are due to the way STLPort Strings work. For RC2 will change compile settings for STLPort in debug to get rid of this.
- Selecting 8 (DOF) in COmpositor demo may cause the demo to crash. The DOF compositor script and shaders did not get finished. Maybe for RC2
- ParticleFx demo in GL rendering has problem on ATI cards with latest catalyst driver


Dependencies for Code::Blocks + MingW + STLPort
If you are so inclined to want to build Ogre from source using C::B + MingW + STLPort then you will need the dependencies:
http://prdownloads.sourceforge.net/ogre ... p?download
It has all the dependencies I built for use with Ogre 1.1 and above. Included are the debug and release import libs I built from the Feb 2006 DirectX SDK. Don't use the ones that come with MingW.

I've been using C::B + MingW on and off for about a year now and went full time in January while doing the coding for Ogre 1.1. I find C::B + MingW a very good alternative to MSVC but remember that C::B is still under heavy developement and there are bugs but nothing serious from preventing it being used as a full time dev ide.

This will eventually go onto the Ogre Wiki after I get some feedback on the SDK and Dependencies package.
Last edited by nfz on Sun Apr 23, 2006 11:38 pm, edited 1 time in total.

User avatar
Game_Ender
Ogre Magi
Posts: 1269
Joined: Wed May 25, 2005 2:31 am
Location: Rockville, MD, USA

Post by Game_Ender »

You are my hero NFZ. Thank you so much.

EDIT- Now we just need to make those project files cross platform.

vega
Halfling
Posts: 47
Joined: Sat Apr 02, 2005 11:19 am
Location: Germany
Contact:

Post by vega »

i second that :D

going to test it today

one question - you mentioned not to use Code::Blocks 1.0 RC2
does this only concern the sdk version or also the source version?

if(source == true)
why? ;)

User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2
Contact:

Post by Kencho »

nfz, I want a child from you! :lol:
Dude, thanks for the time to do this :D
Image

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

I totally forgot about this: while working on the compositor script compiler I did up compositor script lexer files for code::blocks so that I could get syntax highlighting of compositor scripts in code::blocks. I'll be submitting this to the patch tracker for code::blocks so that it gets included in the next nightly build but in the meantime HERE is the link so you can download it and use it right away. Unzip the contents into MyCodeBlocksDirectory\share\CodeBlocks\lexers.


Note that C::B already has my Material script lexer although I do need to submit a patch to bring it upto Ogre 1.2.
Last edited by nfz on Mon Mar 13, 2006 11:03 pm, edited 1 time in total.

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

vega: it concerns the source too.

If you are currently using RC2 and do decide to get the Nightly build, DO NOT INSTALL IT IN THE SAME DIRECTORY AS RC2. It will appear to work but you will experience periodic crashes. Just unzip into a new directory. If you are getting Nightly builds each day, its ok to unzip into the previous days build directory.

User avatar
joshcryer
Gnome
Posts: 351
Joined: Wed Oct 13, 2004 8:22 am

Post by joshcryer »

You rock nfz. Just wanted to say. :)

ZekeDragon
Gnoblar
Posts: 1
Joined: Wed Jan 18, 2006 3:03 am
Location: Santa Clarita
Contact:

Post by ZekeDragon »

Providing a location for you to download Code::Blocks Nightly's quick and easy, here.

Just figured you'd like to know, maybe get some more C::B users out there :)

- Zeke

User avatar
Olex
Hobgoblin
Posts: 593
Joined: Fri Apr 08, 2005 6:08 pm
Location: WA, USA

Post by Olex »

Can someone help me out with building Ogre from source on Windows using Code::Blocks from prepackaged source?

I'm getting a weird looking problem building PlatformManager_Win32:

Code: Select all

-------------- Build: Debug in PlatformManager_Win32 ---------------
Compiling: ..\src\OgreWin32ConfigDialog.cpp
mingw32-g++.exe: Files\CodeBlocks\include  -c ..\src\OgreWin32ConfigDialog.cpp -o ..\obj\Debug\src\OgreWin32ConfigDialog.o: No such file or directory
mingw32-g++.exe: no input files
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
I'm able to build OgreMain, Plugin_*, RenderSystem_GL, but same looking problem for RenderSystem_Direct3D9:

Code: Select all

-------------- Build: Debug in RenderSystem_Direct3D9 ---------------
Compiling: ..\src\OgreD3D9Driver.cpp
mingw32-g++.exe: Files\CodeBlocks\include  -c ..\src\OgreD3D9Driver.cpp -o ..\obj\Debug\src\OgreD3D9Driver.o: No such file or directory
mingw32-g++.exe: no input files
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
P.S. Running C::B build from March 14, 2006 with packages of tools from these links:
on a WinXP SP2

P.P.S. Clean/dist-clean/rebuild didn't help. Removing everything and starting from scratch, didn't work either.
Those source files do exist there and are located in correct position.

vega
Halfling
Posts: 47
Joined: Sat Apr 02, 2005 11:19 am
Location: Germany
Contact:

Post by vega »

im had this problem too - but through another problem i decided to start again from scratch -- now the problem is back and i didnt remember how i solved it :roll:

but if i rember correct, code::blocks has/had problems with directorynames wich contains "spaces"
- therefore "mingw32-g++.exe: Files\CodeBlocks\include -c "
is missing the "C:\Program "


else stay tuned - im must fix for me too :wink:

User avatar
Olex
Hobgoblin
Posts: 593
Joined: Fri Apr 08, 2005 6:08 pm
Location: WA, USA

Post by Olex »

OK. I think I've nailed the problem. MinGW (or C::B) does not like when inlude directories end on a slash, so:

Code: Select all

c:\Program Files\Microsoft DirectX SDK (February 2006)\Include\
should be:

Code: Select all

c:\Program Files\Microsoft DirectX SDK (February 2006)\Include
With this, everything works fine. :D

User avatar
jomunoz
Goblin
Posts: 228
Joined: Wed Apr 13, 2005 5:07 pm
Location: Medellin - Colombia

Post by jomunoz »

I'm getting the following message:


mingw32-g++.exe -LC:\Jimmy\OGRE\OgreSDK\stlport\lib -LC:\Jimmy\OGRE\OgreSDK\bin\ -L"C:\Documents and Settings\adminfo\Mis documentos\Codeblocks\CodeBlocks\lib" -o ..\..\bin\Release\Demo_BezierPatch.exe ..\obj\Release\src\Bezier.o -Wl,--enable-auto-image-base -Wl,--add-stdcall-alias -s -lstlport.5.0.dll -lOgreMain -mwindows
C:\Documents and Settings\adminfo\Mis documentos\Codeblocks\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -lOgreMain
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 22 seconds)


¿What can this be?

EDITED: The above was fixed (I wasn't using the nightly builds of codeblocks)
-----------------------------------------------------------------------------------


Now, with the build of march 15 I can build all the examples in Debug mode. But when I try to build them in Release mode i get the following:

-------------- Build: Release in Demo_BezierPatch ---------------
Compiling: ..\src\Bezier.cpp
Linking executable: ..\..\bin\Release\Demo_BezierPatch.exe
Info: resolving Ogre::Vector3::ZERO by linking to __imp___ZN4Ogre7Vector34ZEROE (auto-import)
Info: resolving Ogre::Math::fDeg2Rad by linking to __imp___ZN4Ogre4Math8fDeg2RadE (auto-import)
Info: resolving Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME by linking to __imp___ZN4Ogre20ResourceGroupManager27DEFAULT_RESOURCE_GROUP_NAMEE (auto-import)
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN20ExampleFrameListener12frameStartedERKN4Ogre10FrameEventE[ExampleFrameListener::frameStarted(Ogre::FrameEvent const&)]+0x9d): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN20ExampleFrameListener12frameStartedERKN4Ogre10FrameEventE[ExampleFrameListener::frameStarted(Ogre::FrameEvent const&)]+0xa5): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN17BezierApplication19createFrameListenerEv[BezierApplication::createFrameListener()]+0x235): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN17BezierApplication19createFrameListenerEv[BezierApplication::createFrameListener()]+0x23e): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN18ExampleApplication19createFrameListenerEv[ExampleApplication::createFrameListener()]+0x235): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN18ExampleApplication19createFrameListenerEv[ExampleApplication::createFrameListener()]+0x23e): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN14BezierListener12frameStartedERKN4Ogre10FrameEventE[BezierListener::frameStarted(Ogre::FrameEvent const&)]+0x2ee): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
..\obj\Release\src\Bezier.o:Bezier.cpp:(.text$_ZN14BezierListener12frameStartedERKN4Ogre10FrameEventE[BezierListener::frameStarted(Ogre::FrameEvent const&)]+0x2f7): variable 'Ogre::Vector3::ZERO' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 54 seconds)
0 errors, 0 warnings

----------
EDITED AGAIN:
My version of Mingw was outdated too. Everything is fine now.
----------

User avatar
jomunoz
Goblin
Posts: 228
Joined: Wed Apr 13, 2005 5:07 pm
Location: Medellin - Colombia

Post by jomunoz »

¿When is Ogre 1.2 RC1 SDK for Code::Blocks + MingW + STLPort is going to be in the download section of Ogre3d.org?

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

I want to finish some help guides for the wiki before I open the flood gates. In the above post I only covered the SDK and didn't go into what you need to do for building from source. Experienced users will figure it out but those that are new will need some guidance ie installing the dependencies, must use gcc 3.4.5, use ogre_stlp.workspace not ogre.workspace, and other little tidbits.

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

Wiki Page is up but lacking some info for doing source builds and setting up a project.

User avatar
Olex
Hobgoblin
Posts: 593
Joined: Fri Apr 08, 2005 6:08 pm
Location: WA, USA

Post by Olex »

Hey, nfz, your package seems to be missing .lib files for OGRE. Can you add those please?

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

What Ogre lib files are you refering to? If you mean OgreMain.lib and OgreMain_d.lib then they don't exist and you don't need them. You link directly against the dll, same as you would with .so on linux.

I haven't finished the "Setting up a Project" section in the wiki yet but have a look at one of the ogre demos project build settings. The demos link against OgreMain.dll or OgreMain_d.dll depending on the target build. In the link settings there is either OgreMain or OgreMain_d. No need to add the .dll extension since the linker will figure this out.

defence22
Gnoblar
Posts: 6
Joined: Sat Jan 28, 2006 10:12 pm

Post by defence22 »

Thanks for the SDK! All the samples work quite well. However, I seem to be getting problems with the dependencies when trying to build the Dagon compatible PLSM. Here is the build log:
-------------- Build: Release in Plugin_PagingLandScapeSceneManager2 ---------------
Compiling: ..\src\OgrePagingLandScapeCamera.cpp
In file included from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/../include/float.h:6,
from c:/OgreSDK/stlport/stlport/float.h:27,
from C:/MinGW/include/float.h:6,
from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/../3.4.5/cfloat:48,
from c:/OgreSDK/stlport/stlport/cfloat:27,
from c:/OgreSDK/stlport/stlport/stl/_limits.h:32,
from c:/OgreSDK/stlport/stlport/stl/_num_put.c:26,
from c:/OgreSDK/stlport/stlport/stl/_num_put.h:198,
from c:/OgreSDK/stlport/stlport/stl/_ostream.c:27,
from c:/OgreSDK/stlport/stlport/stl/_ostream.h:365,
from c:/OgreSDK/stlport/stlport/stl/_string_io.h:23,
from c:/OgreSDK/stlport/stlport/string:38,
from C:/OgreSDK/include/OgreStdHeaders.h:19,
from C:/OgreSDK/include/OgrePrerequisites.h:88,
from C:/OgreSDK/include/OgreCamera.h:29,
from ..\src\OgrePagingLandScapeCamera.cpp:37:
C:/MinGW/include/../include/float.h:6:23: #include nested too deeply
C:/MinGW/include/../include/float.h:12:20: #include nested too deeply
In file included from c:/OgreSDK/stlport/stlport/stl/_num_put.c:26,
from c:/OgreSDK/stlport/stlport/stl/_num_put.h:198,
from c:/OgreSDK/stlport/stlport/stl/_ostream.c:27,
from c:/OgreSDK/stlport/stlport/stl/_ostream.h:365,
from c:/OgreSDK/stlport/stlport/stl/_string_io.h:23,
from c:/OgreSDK/stlport/stlport/string:38,
from C:/OgreSDK/include/OgreStdHeaders.h:19,
from C:/OgreSDK/include/OgrePrerequisites.h:88,
from C:/OgreSDK/include/OgreCamera.h:29,
from ..\src\OgrePagingLandScapeCamera.cpp:37:
c:/OgreSDK/stlport/stlport/stl/_limits.h:188: error: `FLT_RADIX' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:444: error: `FLT_MANT_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:445: error: `FLT_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:446: error: `FLT_MIN_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:447: error: `FLT_MAX_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:448: error: `FLT_MIN_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:449: error: `FLT_MAX_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 2 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 3 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 4 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 5 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 6 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:455: error: template argument 7 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static float stlpmtx_std::numeric_limits<float>::min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:457: error: `FLT_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static float stlpmtx_std::numeric_limits<float>::denorm_min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:458: error: `FLT_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static float stlpmtx_std::numeric_limits<float>::max()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:459: error: `FLT_MAX' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static float stlpmtx_std::numeric_limits<float>::epsilon()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:460: error: `FLT_EPSILON' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: At global scope:
c:/OgreSDK/stlport/stlport/stl/_limits.h:470: error: `DBL_MANT_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:471: error: `DBL_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:472: error: `DBL_MIN_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:473: error: `DBL_MAX_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:474: error: `DBL_MIN_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:475: error: `DBL_MAX_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 2 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 3 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 4 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 5 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 6 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:481: error: template argument 7 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static double stlpmtx_std::numeric_limits<double>::min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:483: error: `DBL_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static double stlpmtx_std::numeric_limits<double>::denorm_min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:484: error: `DBL_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static double stlpmtx_std::numeric_limits<double>::max()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:485: error: `DBL_MAX' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static double stlpmtx_std::numeric_limits<double>::epsilon()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:486: error: `DBL_EPSILON' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: At global scope:
c:/OgreSDK/stlport/stlport/stl/_limits.h:498: error: `LDBL_MANT_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:499: error: `LDBL_DIG' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:500: error: `LDBL_MIN_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:501: error: `LDBL_MAX_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:502: error: `LDBL_MIN_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:503: error: `LDBL_MAX_10_EXP' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 2 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 3 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 4 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 5 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 6 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h:505: error: template argument 7 is invalid
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static long double stlpmtx_std::numeric_limits<long double>::min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:507: error: `LDBL_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static long double stlpmtx_std::numeric_limits<long double>::denorm_min()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:508: error: `LDBL_MIN' was not declared in this scope
c:/OgreSDK/stlport/stlport/stl/_limits.h: In static member function `static long double stlpmtx_std::numeric_limits<long double>::max()':
c:/OgreSDK/stlport/stlport/stl/_limits.h:509: error: `LDBL_MAX' was not declared in this scope
Process terminated with status 1 (0 minutes, 5 seconds)
52 errors, 0 warnings

User avatar
Xypher
Gremlin
Posts: 180
Joined: Tue Jun 29, 2004 1:35 am
Location: Richmond, IN; USA
Contact:

Post by Xypher »

I don't suppose you could add in EXACTLY what build options need to be set to compile a project using the SDK in C::B?

I'm having a rediculous time getting Ogre to link. I've gone over the sample project settings and can't figure it out...

:(

User avatar
Olex
Hobgoblin
Posts: 593
Joined: Fri Apr 08, 2005 6:08 pm
Location: WA, USA

Post by Olex »

nfz wrote:You link directly against the dll, same as you would with .so on linux..
I see, thanks for the explanation. OK, I gave C::B those .dll to link as, which it seems to take just fine (since it does not tell me that it can't find a library). But i tells that failed to link properly.

Code: Select all

..\URScene\libURScene.a(urscene.o):urscene.cpp:(.text+0xa00): undefined reference to `Ogre::OverlayManager::createOverlayElement(std::string const&, std::string const&, bool)'
I've tried linking against OgreMain and against both OgreMain and OgrePlatform with no positive result.

What is going on?

nfz
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 1263
Joined: Wed Sep 24, 2003 4:00 pm
Location: Halifax, Nova Scotia, Canada

Post by nfz »

Yep, I am working on the Wiki right now which tells you what the project build options must be for any project you build with CB + MinGW + STLPort. All three of you are having the same problem which is incorrect build options and I apologize for that since I got a little behind in having the wiki docs done prior to the SDK release.

You can get a head start by looking at the settings used in the demos to get the project settings for an exe. For a dll you could look at one of the project files for one of the Ogre plugins, assuming you have the cvs source.

User avatar
Olex
Hobgoblin
Posts: 593
Joined: Fri Apr 08, 2005 6:08 pm
Location: WA, USA

Post by Olex »

OK, I've looked at the Demo_Transparency settings for C::B:

General:
--Compiler:
----Other options:
-mthreads
-fmessage-length=0
-fexceptions
-fident
----#Defines:
_STLP_NO_CUSTOM_IO
_STLP_USE_DYNAMIC_LIB
--Linker:
----Other:
-Wl,--enable-auto-image-base
-Wl,--add-stdcall-alias


Release:
--Compiler:
----Defines:
WIN32
NDEBUG
_WINDOWS
--Linker:
stlport.5.0
OgreMain


Debug:
--Compiler:
----#Defines:
WIN32
_DEBUG
_WINDOWS
_STLP_DEBUG
--Linker:
stlportstlg.5.0
OgreMain_d

Does this look right?

And copied them into one of my smaller project. That didn't help though. The build goes fine for static lib, but for the unit tests, it bails out on linking:

Code: Select all

Linking console executable: RGFMathTest.exe
..\RGFMath\libRGFMath.a(mathtools.o):mathtools.cpp:(.text+0x827): undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'
collect2: ld returned 1 exit status
which comes from me using StringConverter::toString( Real ).

P.S. I will now look into building OGRE myself again and then its demos. I've done this before it crashed on me during run-time (Ogre_stlp.workspace).

User avatar
Xypher
Gremlin
Posts: 180
Joined: Tue Jun 29, 2004 1:35 am
Location: Richmond, IN; USA
Contact:

Post by Xypher »

Well...after several hours of trying, I ended up thusly:
-------------- Build: Debug in poq ---------------
Linking executable: Debug\Poq.exe
Info: resolving Ogre::Vector3::ZERO by linking to __imp___ZN4Ogre7Vector34ZEROE (auto-import)
Info: resolving Ogre::Quaternion::IDENTITY by linking to __imp___ZN4Ogre10Quaternion8IDENTITYE (auto-import)
Info: resolving vtable for Ogre::UserDefinedObjectby linking to __imp___ZTVN4Ogre17UserDefinedObjectE (auto-import)
Info: resolving Ogre::StringUtil::BLANK by linking to __imp___ZN4Ogre10StringUtil5BLANKE (auto-import)

^^^ Why do these work...And these don't? vvv

Debug\Poq_App.o: In function `ZN3poq4CApp13loadResourcesEv':G:/Projects/poq/Poq_App.cpp:22: undefined reference to `Ogre::ConfigFile::load(std::string const&, std::string const&, bool)'
:G:/Projects/poq/Poq_App.cpp:38: undefined reference to `Ogre::ResourceGroupManager::addResourceLocation(std::string const&, std::string const&, std::string const&, bool)'
Debug\Poq_App.o: In function `ZN3poq4CApp4initEv':G:/Projects/poq/Poq_App.cpp:49: undefined reference to `Ogre::Root::Root(std::string const&, std::string const&, std::string const&)'
:G:/Projects/poq/Poq_App.cpp:70: undefined reference to `Ogre::Root::initialise(bool, std::string const&)'
Debug\Poq_ObjectManager.o: In function `ZN3poq14CObjectManager9regOCTypeEPNS_11COComponentE':G:/Projects/poq/Poq_ObjectManager.cpp:46: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
Debug\Poq_ObjectManager.o: In function `ZN3poq14CObjectManager12hasComponentEPNS_7CObjectESs':G:/Projects/poq/Poq_ObjectManager.cpp:188: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
Debug\Poq_StateManager.o: In function `ZN3poq13CStateManager4initEPN4Ogre4RootEPNS1_12RenderWindowERSs':G:/Projects/poq/Poq_StateManager.cpp:34: undefined reference to `Ogre::Root::createSceneManager(unsigned short, std::string const&)'
:G:/Projects/poq/Poq_StateManager.cpp:50: undefined reference to `Ogre::OverlayManager::getByName(std::string const&)'
Debug\poq_InputManager.o: In function `ZN3poq13CInputManager5clearEv':G:/Projects/poq/poq_InputManager.cpp:33: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
Debug\poq_InputManager.o: In function `ZN3poq13CInputManager15loadInputConfigEv':G:/Projects/poq/poq_InputManager.cpp:464: undefined reference to `Ogre::ConfigFile::load(std::string const&, std::string const&, bool)'
:G:/Projects/poq/poq_InputManager.cpp:473: undefined reference to `Ogre::ConfigFile::load(std::string const&, std::string const&, bool)'
:G:/Projects/poq/poq_InputManager.cpp:477: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:487: undefined reference to `Ogre::ConfigFile::getSettingsIterator(std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:504: undefined reference to `Ogre::StringUtil::split(std::string const&, std::string const&, unsigned int)'
:G:/Projects/poq/poq_InputManager.cpp:520: undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:525: undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:530: undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:535: undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'
Debug\poq_InputManager.o: In function `ZN3poq13CInputManager14checkUserInputERKN4Ogre10FrameEventE':G:/Projects/poq/poq_InputManager.cpp:596: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
:G:/Projects/poq/poq_InputManager.cpp:645: undefined reference to `Ogre::Exception::Exception(int, std::string const&, std::string const&)'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 6 seconds)
20 errors, 0 warnings
As you can see, it finds SOME of the symbols, but not all...for some reason?
I looked at the sample projects, and this is what I came up with for build options:

poq <--Project Options
-Compiler
[None]

-Linker
--Link Libraries:
stlportstlg.5.0
--Other linker options:
-Wl,--enable-auto-image-base <--what does this do?
-Wl,--add-stdcall-alias <--what does this do?

-Directories
--Compiler
[None]
--Linker
$(TARGET_NAME) <--As in "Debug" where all the DLLs are
..\Libraries\OgreSDK\bin\$(TARGET_NAME) <--where the DLLs should be anyway
--Resource Compiler
[None]

-Commands
[None]

-Custom variables
[None]

-"Make" Commands
[Not Using]



poq::debug
-Compiler
--Compiler Flags
Using -g -pg
--Other Options
[None]
--#defines
WIN32
_DEBUG
_WINDOWS
POQ_PLATFORM_WIN32 <--Its redundant to Ogre's platform def, i'm just lazy

-Linker
--Link libraries:
OgreMain_d
CEGUIBase_d
OgreGUIRenderer_d
--Other linker options
[None]

-Directories
--Compiler
..\libraries\OgreSDK\include
..\libraries\OgreSDK\include\CEGUI <--just so its easier to get to
--Linker
[None]
--Resource Compiler
[None]

-Commands
[None]

-Custom Variables
[None]

-"Make" Commands
[Not using]
Last edited by Xypher on Mon Mar 20, 2006 10:28 pm, edited 1 time in total.

User avatar
nickgravelyn
Halfling
Posts: 96
Joined: Sat Jan 28, 2006 7:41 pm
Location: Michigan
Contact:

Post by nickgravelyn »

I managed to get the nightly build for C::B running and I'm trying to make a test app. I tried using the default Ogre project included with C::B. I set the ogre variable to the sdk location. Then, after creating the project, I added the directories for OgreMain(_d). Still when I compile I get some linker errors:

Code: Select all

Debug\.objs\main.o(.text$_ZN18ExampleApplication14setupResourcesEv[ExampleApplication::setupResources()]+0xea): In function `ZN20ExampleFrameListener12frameStartedERKN4Ogre10FrameEventE':
C:/OgreSDK/Samples/include/ExampleFrameListener.h: undefined reference to `Ogre::ConfigFile::load(std::string const&, std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN18ExampleApplication14setupResourcesEv[ExampleApplication::setupResources()]+0x423): In function `GLOBAL__D_WinMain':
C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::ResourceGroupManager::addResourceLocation(std::string const&, std::string const&, std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListenerC1EPN4Ogre12RenderWindowEPNS0_6CameraEbb[ExampleFrameListener::ExampleFrameListener(Ogre::RenderWindow*, Ogre::Camera*, bool, bool)]+0x137): In function `WinMain':
C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:57: undefined reference to `Ogre::OverlayManager::getByName(std::string const&)'
Debug\.objs\main.o(.text$_ZN18ExampleApplication18chooseSceneManagerEv[ExampleApplication::chooseSceneManager()]+0x8a): In function `ZN20ExampleFrameListener12frameStartedERKN4Ogre10FrameEventE':
C:/OgreSDK/Samples/include/ExampleFrameListener.h: undefined reference to `Ogre::Root::createSceneManager(unsigned short, std::string const&)'
Debug\.objs\main.o(.text$_ZN18ExampleApplication9configureEv[ExampleApplication::configure()]+0xa7):C:/OgreSDK/Samples/include/ExampleFrameListener.h: undefined reference to `Ogre::Root::initialise(bool, std::string const&)'
Debug\.objs\main.o(.text$_ZN18ExampleApplication5setupEv[ExampleApplication::setup()]+0x1c2): In function `WinMain':
C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:68: undefined reference to `Ogre::Root::Root(std::string const&, std::string const&, std::string const&)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x399): In function `_tcf_4':
C:/OgreSDK/Samples/include/ExampleFrameListener.h:58: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x478): In function `GLOBAL__D_WinMain':
C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x557):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x636):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x717):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x836):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x957):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(unsigned long, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x9ba):Info: resolving Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME       by linking to __imp___ZN4Ogre20ResourceGroupManager27DEFAULT_RESOURCE_GROUP_NAMEE (auto-import)
Info: resolving Ogre::Quaternion::IDENTITY      by linking to __imp___ZN4Ogre10Quaternion8IDENTITYE (auto-import)
Info: resolving Ogre::Vector3::ZERO     by linking to __imp___ZN4Ogre7Vector34ZEROE (auto-import)
Info: resolving Ogre::Math::fDeg2Rad     by linking to __imp___ZN4Ogre4Math8fDeg2RadE (auto-import)
C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0xc88):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(unsigned long, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0xceb):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0xfd5):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x1096):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::StringConverter::toString(unsigned int, unsigned short, char, std::_Ios_Fmtflags)'
Debug\.objs\main.o(.text$_ZN20ExampleFrameListener11updateStatsEv[ExampleFrameListener::updateStats()]+0x11df):C:/Documents and Settings/Nick Gravelyn/Desktop/Ogre Test/main.cpp:44: undefined reference to `Ogre::OverlayManager::getOverlayElement(std::string const&, bool)'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 2 seconds)
19 errors, 0 warnings
Nick Gravelyn

User avatar
Xypher
Gremlin
Posts: 180
Joined: Tue Jun 29, 2004 1:35 am
Location: Richmond, IN; USA
Contact:

Post by Xypher »

Please excuse the momentary derailment, but...
on a Athlon XP 2000+ with 512K ram. An Atholon 64 4000 with 1Gig ram takes 7 min.
Did anyone else catch that? lol

Post Reply