[SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Problems building or running the engine, queries about how to use features etc.
Post Reply
User avatar
jorgerosa
Gnoblar
Posts: 19
Joined: Mon Dec 07, 2009 7:50 pm
x 3
Contact:

[SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by jorgerosa »

Hello all Shreks at Ogre3D community,
I´m very familiar with IRRLICHT 3D engine, developed some (zlib/libpng, open source) projects with that "easy to install + easy to use + all-in-one + fast" engine.
But now, I want to try to develop something, with a different (more powefull) engine, with a bunch more of "shining things" (and messy)... like OGRE 3D.

My pre-instaled software: (This list may be useful to you... or not... just in case...)
• MS Windows 7: ... Yeah... I Know... Sorry!!!... Now I know that i could buy a bunch of PCs with that money!... or buy lots of cool stuff in this shop!...
What waste of money!... Oh, boy! My life really sucks!... Anyways... One thing is for sure... Will never happen again...

• Code::Blocks: Download (In my case is: "codeblocks-10.05mingw-setup.exe")
• CMake: Download (In my case is: "cmake-2.8.10-win32-x86.exe")
• Ogre3D: Download (In my case is: "OgreSDK_MinGW_v1-8-1.exe")
(You will need to install MinGW too, all about this on the "2nd issue" description...)

I am trying to install in my system: Code::Blocks (V.10.05) + OgreSDK_MinGW_v1-8-1 (Lattest Versions)
Already compiled the demos (using CMake), and they look like magic to my eyes... Awesome !!! Can´t wait to install and try this Shrek 3D stuff...

Let´s start!...

##########################################################################################################################################################################################################################################################################################

• 1st step - on Console, I had set some environment variables, this way:
Pressed WINDOWS (super user) key --> And typed in the search box there "cmd", then clicked on "cmd.exe" (to run windows console)
On console i typed: (Going to create a global variable and give it a value (in this case it´s a path))

Code: Select all

setx OGRE_HOME "C:\OgreSDK_MinGW_v1-8-1"
[Pressed ENTER key... done!]
On console i typed: (Going to create a global variable and give it a value (in this case it´s a path))

Code: Select all

setx BOOST_LIBRARYDIR "C:\OgreSDK_MinGW_v1-8-1\boost\lib"
[Pressed ENTER key... done!]
Console is no more needed, close it.

• 2nd step - on Code::Blocks, I followed this tutorial steps here. And my result was something like this:
"Project" (menu) ---> "Build options" (item) --> "Linker Settings" (tab) ---> "link Libraries" (left input box) is like:

Code: Select all

$(OGRE_HOME)\bin\OgreMain.dll
$(OGRE_HOME)\bin\OIS.dll
$(OGRE_HOME)\boost\lib\libboost_system-mgw47-mt-1_51.a
"Project" (menu) ---> "Build options" (item) --> "Linker Settings" (tab) ---> "Other linker options" (right input box) is like:

Code: Select all

-Wl,--enable-auto-image-base
-Wl,--add-stdcall-alias
-Wl,--enable-auto-import
"Project" (menu) ---> "Build options" (item) --> "Search directories" (tab) ---> "Compiler" (tab) is like:

Code: Select all

$(OGRE_HOME)\include
$(OGRE_HOME)\include\OGRE
$(OGRE_HOME)\include\OIS
$(OGRE_HOME)\boost
"Project" (menu) ---> "Build options" (item) --> "Search directories" (tab) ---> "Linker" (tab) is like:

Code: Select all

$(OGRE_HOME)\bin\$(TARGET_NAME)
Everything seems ok and ready to start, lets gooooooooo!.... (or maybe not...)

##########################################################################################################################################################################################################################################################################################

SHREK 3D ISSUES:
EDIT: All the following issues and solutions are now updated.

1st issue - Code::Blocks outputs:
Complains about missing libraries, like "libgcc_s_dw2-1.dll", etc, etc...
Solution:
All I had to do was to COPY & PASTE those libraries into my main project executable's folder.
Solved!

2nd issue - Code::Blocks outputs:
Complains about undefined references, seems to be boost libraries related... Or not...
Or could just be... my undefined personality !!!... v0!!!... ("__gxx_personality_v0") wth !!!??...
damn rude calculator machine, how dare you !!!... Who whas the rocket scientist that had the idea to add feedback to these things !!!??...

Code: Select all

(...)\boost\lib\libboost_system-mgw47-mt-1_51.a(error_code.o):error_code.cpp|| undefined reference to `_Unwind_Resume'|
(...)\boost\lib\libboost_system-mgw47-mt-1_51.a(error_code.o):error_code.cpp:(.eh_frame+0xa3)||undefined reference to `__gxx_personality_v0'|
Solution:
• Flash Gordon vs. MinGW: (based on real events)
1) I´ve uninstalled my MinGW (was on my "C:\MinGW", dunno what version it was...)
2) I´ve downloaded "mingw-get-inst-20120426.exe" (Download), then on installation wizard, I´ve selected the "Download latest repository catalogues" (NOT the selected default one: "pre-packed"), then on the select components i´ve checked ALL the boxes (just in case...), and my installation path is: "C:\MinGW" (again)
3) Seems that will take a bit of time downloading and installing stuff.... .... .... .... .... .... .... (MinGW version 4.7.2 installed) Ok! We are done!
• Now, on my CODE::BLOCKS:
1) "Settings" (menu) ---> "Compiler and debugger" (item) ---> "Global compiler settings" (left big icon) ---> "Toolchain executables" (tab)
2) On "Compiler installation´s directory" I´ve changed it to "C:\MinGW" (The default old path was "C:\Program Files (x86)\CodeBlocks\MinGW")
3) Saved all my stuff, restarted Code::Blocks, opened my project, build and run......... pray..... and........WORKED like a charm!!!
Solved! THANKYOU VERY MUCH to all sheeps around the world!

And... other (small and cool) issues that may occur, and how to fix:

3rd issue - Code::Blocks outputs:
After compiled and run my first Ogre3D project... App crashes and popups will appear, like "(...) Unable to read zip file (...)", etc, etc...
Solution:
I´ve edited the default paths on this file: "resources.cfg".
Solved!

4th issue - Code::Blocks outputs:
Sometimes (yep, only sometimes(!!??) Very odd this one, for me...) CODE::BLOCKS can´t compile and complains:

Code: Select all

(...)\boost\thread\win32\shared_mutex.hpp|124|  required from here|
Solution:
I´ve added this line in my project header: (Must be before: #include <Ogre.h> and/or #include "Ogre.h")

Code: Select all

#define BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Solved!

##########################################################################################################################################################################################################################################################################################

Ok, all seems to be running just great now, time to move forward, and let me start to digg here:
http://www.ogre3d.org/tikiwiki/tiki-ind ... +Framework

EDIT: This info is now deprecated, but still here:
I´ve searching and read about this issue in the Ogre forums, someone wrote:
"Symbol __gxx_personality_v0 is used in the stack unwiding tables when exception in raised. It's part of std C++ library. I don't know why you're missing this library in linking. Possibly you're using gcc instead of g++. The second automatically adds -lstdc++ flag to linker." (Seems to me that is my issue too. Unfortunately that topic was closed before someone post a solution..)
So, (and IF i understand correctly, and after digging a lot) GCC 4.7.2 can handle this issue (Since, they wrote: "GCC now uses C++ as its implementation language" (...) "well as libraries for these languages libstdc++, libgcj,..."), but the lattest version of MinGW includes an older GCC version...

Can anyone give me a light (workaround) on this one? Thankyou.
Last edited by jorgerosa on Thu Nov 28, 2013 10:27 pm, edited 148 times in total.
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: Code::Blocks + OgreSDK + MinGW (Lattest Versions)

Post by TheSHEEEP »

What version of MinGW do you use to compile your project?

I ask because CodeBlocks sometimes (depending on which one you downloaded) comes with its own MinGW version, which is not the one the SDK was compiled with.
If so, download MinGW with GCC 4.7.0 and point CodeBlocks to that version instead of its own.
Maybe that is the problem.
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
jorgerosa
Gnoblar
Posts: 19
Joined: Mon Dec 07, 2009 7:50 pm
x 3
Contact:

Re: Code::Blocks + OgreSDK + MinGW (Lattest Versions)

Post by jorgerosa »

TheSHEEEP wrote:What version of MinGW do you use to compile your project?
Couldn´t find anywhere the version of my MinGW, so...
TheSHEEEP wrote:(...) CodeBlocks sometimes comes with its own MinGW version (...)
Oh, right !!!... I´ve completly forgot about this... And it is exactly my case...
TheSHEEEP wrote:(...) download MinGW with GCC 4.7.0 and point CodeBlocks to that version instead of its own. (...)
Ok, that is a light... Now lets try some stuff and follow this sheep main idea...


Flash Gordon vs. MinGW (based or real events):
1) I´ve uninstalled my MinGW (was on my "C:\MinGW", dunno what version it was...)
2) I´ve downloaded "mingw-get-inst-20120426.exe" (get mingw), then on installation wizard, I´ve selected the "Download latest repository catalogues" (NOT the selected default one: "pre-packed"), then on the select components i´ve checked ALL the boxes (just in case...), and my installation path is: "C:\MinGW" (again)
3) Seems that will take a bit of time downloading and installing stuff.... ... .... .... .... .... .... done!

On my CODE::BLOCKS:
1) "Settings" (menu) ---> "Compiler and debugger" (sub menu) ---> "Global compiler settings" (big icon) ---> "Toolchain executables" (tab)
2) On "Compiler installation´s directory" I´ve changed it to "C:\MinGW" (The default path was "C:\Program Files (x86)\CodeBlocks\MinGW")
3) Saved all my stuff, restarted Code::Blocks, opened my project, build and run......... pray..... and........WORKED like a charm!!!

THANKYOU VERY MUCH to all sheeps around the world! :)
EDIT: Everything was added and updated to the 1st post, just to be easier to follow and to read.
So, here are all my steps, and hope this could help someone else, too.
Last edited by jorgerosa on Wed Nov 07, 2012 12:40 pm, edited 13 times in total.
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: [SOLVED] CODE::BLOCKS + Ogre + MinGW + GCC

Post by TheSHEEEP »

No problem, and I'm sure all the other sheep are happy, too ;)

Also, don't worry, you're not the first one to get into that trap Code::Blocks so deviously leads its users into.

And btw you can find your MinGW version by going to "C:\MinGW\lib\gcc\mingw32".
This folder will contain another folder with a version number. Maybe there is a faster way, but I usually do it like that.
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
jorgerosa
Gnoblar
Posts: 19
Joined: Mon Dec 07, 2009 7:50 pm
x 3
Contact:

Re: [SOLVED] CODE::BLOCKS + Ogre + MinGW + GCC

Post by jorgerosa »

TheSHEEEP wrote:(...) you can find your MinGW version by going to "C:\MinGW\lib\gcc\mingw32" (...)
Thanks for the new tip!.. NOW I know that i have version 4.7.2 installed. ("C:\MinGW\lib\gcc\mingw32\4.7.2")... Always learning... :)


Other (small) issues that happened to me, and how I fixed them: (Couldn´t be the best way... But worked!)

P1) After compiled and run my first Ogre3D project... Windows popups like "(...) Unable to read zip file (...)", etc...
S1) I´ve edited the default paths on this file: "resources.cfg". Problem solved!

P2) Sometimes (yep, only sometimes! Very odd this one, for me...) CODE::BLOCKS can´t compile and complains:

Code: Select all

(...)\boost\thread\win32\shared_mutex.hpp|124|  required from here|
S2) I´ve added this line in my project header:

Code: Select all

#define BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN
Problem solved!

EDIT: Everything was added and updated to the 1st post, just to be easier to follow and to read.
Last edited by jorgerosa on Wed Nov 07, 2012 12:40 pm, edited 6 times in total.
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: [SOLVED] CODE::BLOCKS + Ogre + MinGW + GCC

Post by TheSHEEEP »

I'm going to sticky this, as Code::Blocks confusing users with its own MinGW does seem to happen more often :)
jorgerosa wrote:
TheSHEEEP wrote:(...) you can find your MinGW version by going to "C:\MinGW\lib\gcc\mingw32" (...)
Thanks for the new tip!.. NOW I know that i have version 4.7.2 installed. ("C:\MinGW\lib\gcc\mingw32\4.7.2")... Always learning... :)
So it seems 4.7.2 is compatible with 4.7.0 compiled Ogre. Indeed, always learning. :)
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
jorgerosa
Gnoblar
Posts: 19
Joined: Mon Dec 07, 2009 7:50 pm
x 3
Contact:

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by jorgerosa »

In case anyone wanna know, I was digging for MinGW stuff, and I´ve found this by chance:
To retrieve MinGW version open cmd.exe (windows console) and type:

Code: Select all

gcc -v
In my case, it outputs: "gcc version 4.7.2 (GCC)"
NICKlasGamingStudios
Gnoblar
Posts: 4
Joined: Tue Jan 22, 2013 7:31 pm

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by NICKlasGamingStudios »

Ok i have a new problem... iv'e followed all the steps on this subject... and i got to the tutorial framework, then i finish the tutorial, and when i compile and run it tells me "Fatal error: tuterialapplication.h: no such file or directory."... i could really use some help here im not to familiar with Ogre.(oh btw im using codeblocks and the most recent version of MinGW)

UPDATE:
I fixed the problem but now there is a new problem... when i compile and run now it pulls up the base application code and then states that "OgreCamra.h: no such file or directory." iv'e looked through the code there are no pointers to base application, and no reason that it should do that. :?
eLeMenCy
Gnoblar
Posts: 3
Joined: Thu Sep 20, 2012 5:25 pm
x 1

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by eLeMenCy »

Renaming OgreCamra.h to OgreCamera.h might help :-)
NICKlasGamingStudios
Gnoblar
Posts: 4
Joined: Tue Jan 22, 2013 7:31 pm

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by NICKlasGamingStudios »

OMG... i hate it when i do things like that that still doesn't explain why it goes to the base application... but thx anyway
NICKlasGamingStudios
Gnoblar
Posts: 4
Joined: Tue Jan 22, 2013 7:31 pm

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by NICKlasGamingStudios »

also changing that didn't change anything
guidry
Gnoblar
Posts: 16
Joined: Sat Apr 13, 2013 8:28 am
x 1

Unsolved: Newly installed MinGw not compatible with SDK

Post by guidry »

Flash Gordon vs. MinGW (based or real events):
1) I´ve uninstalled my MinGW (was on my "C:\MinGW", dunno what version it was...)
2) I´ve downloaded "mingw-get-inst-20120426.exe" (get mingw), then on installation wizard, I´ve selected the "Download latest repository catalogues" (NOT the selected default one: "pre-packed"), then on the select components i´ve checked ALL the boxes (just in case...), and my installation path is: "C:\MinGW" (again)
3) Seems that will take a bit of time downloading and installing stuff.... ... .... .... .... .... .... done!
Wrong on today! Dosen't work either on Win Xp or Win 7!
I just followed the instructions step by step. on installation wizard, I´ve selected the "Download latest repository catalogues", so I got Mingw g++ 4.7.2, after compiling I got the following error message: Why? Seems Newly installed MinGw not compatible with SDK?
How to solve it?

Code: Select all

||=== TutorialFramework, Debug ===|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplicationC2Ev':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|20|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|20|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|34|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|34|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplicationD2Ev':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|39|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|39|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|39|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|39|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication9configureEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|52|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|52|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|60|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|60|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication12createCameraEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|77|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|77|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|79|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|79|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|79|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|87|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|87|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication19createFrameListenerEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|91|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|91|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|139|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|139|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication15createViewportsEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|147|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|147|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|154|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|154|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication14setupResourcesEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|158|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|158|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|179|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|179|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication5setupEv':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|212|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|212|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|213|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|213|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication20frameRenderingQueuedERKN4Ogre10FrameEventE':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|241|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|241|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|259|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|260|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|261|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|262|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|263|undefined reference to `_Unwind_SjLj_Resume'|
obj\Debug\BaseApplication.o:C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|264|more undefined references to `_Unwind_SjLj_Resume' follow|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication20frameRenderingQueuedERKN4Ogre10FrameEventE':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|265|undefined reference to `_Unwind_SjLj_Unregister'|
obj\Debug\BaseApplication.o||In function `ZN15BaseApplication10keyPressedERKN3OIS8KeyEventE':|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|273|undefined reference to `__gxx_personality_sj0'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|273|undefined reference to `_Unwind_SjLj_Register'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|324|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|347|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|355|undefined reference to `_Unwind_SjLj_Resume'|
C:\Documents and Settings\XP\My Documents\cpp\TutorialFramework\BaseApplication.cpp|355|undefined reference to `_Unwind_SjLj_Unregister'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings (0 minutes, 3 seconds) ===|

I can't found any MinGw installer the same as the 4.70 version Ogre SDK 1.8 is based on.
I tried one which marked as 4.7.0 on google code, but failed aslo.
I guess even the same version number doesn't guarantee it's the same as the version as Ogre SDK's.
My suggestion: Next time the MinGW OGRE SDK will bundle with the Mingw version It is built, so as not to make us always try to find the right version MinGw.
Would anyone kindly offer the identical version of MinGw that can work with the SDK? I hope no need to rebuid the SDK! Thank you!
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: Unsolved: Newly installed MinGw not compatible with SDK

Post by TheSHEEEP »

guidry wrote: My suggestion: Next time the MinGW OGRE SDK will bundle with the Mingw version It is built, so as not to make us always try to find the right version MinGw.
Would anyone kindly offer the identical version of MinGw that can work with the SDK? I hope no need to rebuid the SDK! Thank you!
Well, as I have written some times before, there will not be a prebuilt MinGW SDK anymore. The incompatibility between MinGW versions is simply too big.
Instead, you will have to build Ogre yourself, following this guide, for example.
It's not so hard and actually the only valid way if you want to modify something within Ogre, for example. You save yourself a lot of work in the long run if you build libraries yourself right from the start (well, if you do have the sources).

Some time after 1.9 is out, there will be an automated installer that downloads Ogre sources and builds the SDK for you, using your own MinGW version.

Bundling with the MinGW version is not an option as I do not want to enforce compiler versions ;)
My site! - Have a look :)
Also on Twitter - extra fluffy
dermont
Bugbear
Posts: 812
Joined: Thu Dec 09, 2004 2:51 am
x 42

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by dermont »

I believe Mingw 4.7.2 is not fully compatible with 4.7.0 and 4.7.1 but may be compatible other versions and 4.7.0/4.7.1 may not be compatible with other versions. All a bit of a mess. I think there may be workarounds but they haven't worked for me, best just building everything with 4.7.2.
User avatar
hebdemnobad
Goblin
Posts: 274
Joined: Wed Feb 09, 2005 5:09 pm
Location: catskill escarpment, new york, usa
x 3
Contact:

Problems solved, posted contents of my .cbp file.

Post by hebdemnobad »

[edit3]
Solved! I got code: blocks to build and run the app from within code:blocks itself. Hopefully this text file will make for less head banging for c++ neophytes such as A myself:

A couple of (constructive criticism) notes on the wiki page:

1. It should state how the boost libraries are to be linked in setting up the .cbp file
2. It should state what files should be copied from the ogresdk bin and release directories to get code:blocks to run the nearly empty application code that forms the .cpp file for the wiki article


Here is the complete .cbp file opened with notepad ++. You will have to change some of the path variables to match your machine/app. versions.

I posted the .cbp file to http://www.ogre3d.org/tikiwiki/tiki-ind ... CodeBlocks

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
	<FileVersion major="1" minor="6" />
	<Project>
		<Option title="ogre_one" />
		<Option pch_mode="2" />
		<Option compiler="gcc" />
		<Build>
			<Target title="Debug">
				<Option output="bin/Debug/ogre_one" prefix_auto="1" extension_auto="1" />
				<Option object_output="obj/Debug/" />
				<Option type="1" />
				<Option compiler="gcc" />
				<Option use_console_runner="0" />
				<Compiler>
					<Add option="-g" />
					<Add option="-D_DEBUG" />
				</Compiler>
				<Linker>
					<Add library="OgreMain_d" />
					<Add library="OIS_d" />
					<Add library="libboost_date_time-mgw47-mt-1_51.a" />
					<Add library="libboost_chrono-mgw47-mt-1_51.a" />
					<Add library="libboost_system-mgw47-mt-1_51.a" />
					<Add library="libboost_thread-mgw47-mt-1_51.a" />
					<Add directory="$(OGRE_HOME)/boost/lib" />
				</Linker>
			</Target>
			<Target title="Release">
				<Option output="bin/Release/ogre_one" prefix_auto="1" extension_auto="1" />
				<Option object_output="obj/Release/" />
				<Option type="0" />
				<Option compiler="gcc" />
				<Compiler>
					<Add option="-O2" />
					<Add option="-DNDEBUG" />
				</Compiler>
				<Linker>
					<Add option="-s" />
					<Add library="OgreMain" />
					<Add library="OIS" />
					<Add library="libboost_date_time-mgw47-mt-1_51.a" />
					<Add library="libboost_chrono-mgw47-mt-1_51.a" />
					<Add library="libboost_system-mgw47-mt-1_51.a" />
					<Add library="libboost_thread-mgw47-mt-1_51.a" />
					<Add directory="$(OGRE_HOME)/boost/lib" />
				</Linker>
			</Target>
		</Build>
		<Compiler>
			<Add option="-Wall" />
			<Add option="-mthreads" />
			<Add option="-fmessage-length=0" />
			<Add option="-fexceptions" />
			<Add option="-fident" />
			<Add option="-DWIN32" />
			<Add option="-D_WINDOWS" />
			<Add directory="$(OGRE_HOME)/include" />
			<Add directory="$(OGRE_HOME)/include/OGRE" />
			<Add directory="$(OGRE_HOME)/include/OIS" />
			<Add directory="$(OGRE_HOME)/boost" />
		</Compiler>
		<Linker>
			<Add option="-Wl,--enable-auto-image-base" />
			<Add option="-Wl,--add-stdcall-alias" />
			<Add option="-Wl,--enable-auto-import" />
			<Add directory="$(OGRE_HOME)/bin/$(TARGET_NAME)" />
			<Add directory="$(OGRE_HOME)/bin" />
			<Add directory="$(OGRE_HOME)/boost/lib" />
		</Linker>
		<Unit filename="BaseApplication.cpp" />
		<Unit filename="BaseApplication.h" />
		<Unit filename="TutorialApplication.cpp" />
		<Unit filename="TutorialApplication.h" />
		<Extensions>
			<code_completion />
			<envvars />
			<debugger />
			<lib_finder disable_auto="1" />
		</Extensions>
	</Project>
</CodeBlocks_project_file>
[edit 1]
I solved my missing resource problems by

1. copying the complete contents of the ogre sdk bin/debug directory to the project/bin/debug directory or project/bin/release directory where code:blocks builds my .exe, and
2. copying the complete contents of the media directory to the project root directory When I compile I get the message:

However while I can compile with code:blocks in either to either build or release target, the only way I can get the resulting .exe to run is if I double click on the .exe itself. if I build and run from code:blocks, code:blocks fails to find the resources.cfg file. Perhaps I hacked a workaround that will cause problems later on? Or is the resulting build to a release target the final ogre product (for windows at least).

In any case, the wiki article should state where and how to include the boost library files in a project (I had to figure that out by trial and error to get to this point).

Thanks for your help!!!
-h


[original post]

Code: Select all

10:15:02: OGRE EXCEPTION(6:FileNotFoundException): 'resources_d.cfg' file not found! in ConfigFile::load at ..\..\..\..\..\OgreMain\src\OgreConfigFile.cpp (line 88)
I have searched for the file OgreConfigFile.cpp in the sdk that my ogre_home variable is pointed to, but the file does not exist. neither does it exist in my code blocks project folder. I have uploaded my .cbp file (changed to .txt extension as the forum does not allow upload of cbp files) for anyone to look through to find setup errors.
ogre_one.txt
contents of .cbp file
(2.62 KiB) Downloaded 616 times
I have placed the resources_d.cfg in the project's release release folder, where code blocks builds the .exe file as per the window: project/target options>output filename> build targets. I still get the error.

Here are the apps and variables as set on my ms windows7 machine:

OgreSDK_MinGW_v1-8-1
installed to C:\Ogre_MinGW_SDK_1_8_1

mingw version 4.7.2 installed to C:\MinGW

codeblocks version Release 12.11 rev 8629 (2012/11/28 11:40:31) gcc 4.7.1 Windows/unicode - 32 bit installed to C:\CodeBlocks\


environment variables and user variables:
OGRE_HOME set to c:\Ogre_MinGW_SDK_1_8_1 for my user and system variables
BOOST_LIBRARYDIR set to C:\Ogre_MinGW_SDK_1_8_1\boost\lib for my user and system variables


Below is the complete ogre log:

Code: Select all

10:15:02: Creating resource group General
10:15:02: Creating resource group Internal
10:15:02: Creating resource group Autodetect
10:15:02: SceneManagerFactory for type 'DefaultSceneManager' registered.
10:15:02: Registering ResourceManager for type Material
10:15:02: Registering ResourceManager for type Mesh
10:15:02: Registering ResourceManager for type Skeleton
10:15:02: MovableObjectFactory for type 'ParticleSystem' registered.
10:15:02: OverlayElementFactory for type Panel registered.
10:15:02: OverlayElementFactory for type BorderPanel registered.
10:15:02: OverlayElementFactory for type TextArea registered.
10:15:02: Registering ResourceManager for type Font
10:15:02: ArchiveFactory for archive type FileSystem registered.
10:15:02: ArchiveFactory for archive type Zip registered.
10:15:02: ArchiveFactory for archive type EmbeddedZip registered.
10:15:02: DDS codec registering
10:15:02: FreeImage version: 3.15.3
10:15:02: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
10:15:02: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti
10:15:02: Registering ResourceManager for type HighLevelGpuProgram
10:15:02: Registering ResourceManager for type Compositor
10:15:02: MovableObjectFactory for type 'Entity' registered.
10:15:02: MovableObjectFactory for type 'Light' registered.
10:15:02: MovableObjectFactory for type 'BillboardSet' registered.
10:15:02: MovableObjectFactory for type 'ManualObject' registered.
10:15:02: MovableObjectFactory for type 'BillboardChain' registered.
10:15:02: MovableObjectFactory for type 'RibbonTrail' registered.
10:15:02: OGRE EXCEPTION(6:FileNotFoundException): 'plugins_d.cfg' file not found! in ConfigFile::load at ..\..\..\..\..\OgreMain\src\OgreConfigFile.cpp (line 88)
10:15:02: plugins_d.cfg not found, automatic plugin loading disabled.
10:15:02: *-*-* OGRE Initialising
10:15:02: *-*-* Version 1.8.1 (Byatis)
10:15:02: OGRE EXCEPTION(6:FileNotFoundException): 'resources_d.cfg' file not found! in ConfigFile::load at ..\..\..\..\..\OgreMain\src\OgreConfigFile.cpp (line 88)
Here are the contents of resources_d.cfg:

Code: Select all

# Resources required by the sample browser and most samples.
[Essential]
Zip=../../media/packs/SdkTrays.zip
Zip=../../media/packs/profiler.zip
FileSystem=../../media/thumbnails

# Common sample resources needed by many of the samples.
# Rarely used resources should be separately loaded by the
# samples which require them.
[Popular]
FileSystem=../../media/fonts
FileSystem=../../media/materials/programs
FileSystem=../../media/materials/scripts
FileSystem=../../media/materials/textures
FileSystem=../../media/materials/textures/nvidia
FileSystem=../../media/models
FileSystem=../../media/particle
FileSystem=../../media/DeferredShadingMedia
FileSystem=../../media/PCZAppMedia
FileSystem=../../media/RTShaderLib
FileSystem=../../media/RTShaderLib/materials
FileSystem=../../media/materials/scripts/SSAO
FileSystem=../../media/materials/textures/SSAO
Zip=../../media/packs/cubemap.zip
Zip=../../media/packs/cubemapsJS.zip
Zip=../../media/packs/dragon.zip
Zip=../../media/packs/fresneldemo.zip
Zip=../../media/packs/ogretestmap.zip
Zip=../../media/packs/ogredance.zip
Zip=../../media/packs/Sinbad.zip
Zip=../../media/packs/skybox.zip

[General]
FileSystem=../../media

# Materials for visual tests
[Tests]
FileSystem=../../media/../../Tests/Media
They are relative paths. Must they be reset to absolute paths?

The wiki article posted to http://www.ogre3d.org/tikiwiki/tiki-ind ... de::Blocks does not state exactly where the boost file names should be placed in the build options panel (I just placed them as shown in the attached .cbp file)

thanks for your help!!!!! I've done some community service for the ogre community (posting shaders to wiki), but I need a shepard to guide me (a sheep and a lost one at that).
Infinity_2014
Gnoblar
Posts: 5
Joined: Tue Mar 11, 2014 5:27 am

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by Infinity_2014 »

Dear hebdemnobad ,

Did you succeed to overcome that hurdle of install and debugging the Ogre in C::B, my situation is almost same as yours GCC libaray ver, C::B version Ogre version but it throws the exception exactly where your exception is occured. So I wonder whether you find a workaround for that or have you ever thought to build it from source, I kindly would like to know your further experience before I take a new journey of building from source. Generally in those libraries having build them from source is more troublesome and tedious from pre build libraries because it has more dependencies.

Regards,
Grobi
Gnoblar
Posts: 4
Joined: Sun Mar 23, 2014 12:41 am

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by Grobi »

Hi there,
I am new to ogre and I would like to know if there is a way to setup and use ogre 1.9 with codeblocks on windows 7.
VisualStudio 2012 is a very heavy on my machine (netbook Atom 1.6GHz, 1GB Ram) I think codeblock would run way better performance wise.
MagickPanda
Gnoblar
Posts: 3
Joined: Thu Apr 17, 2014 4:43 pm

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by MagickPanda »

Grobi wrote:Hi there,
I am new to ogre and I would like to know if there is a way to setup and use ogre 1.9 with codeblocks on windows 7.
VisualStudio 2012 is a very heavy on my machine (netbook Atom 1.6GHz, 1GB Ram) I think codeblock would run way better performance wise.
IMO there shouldn't be a very noticeable performance improvement(compile speed),since I don't think the 1GB ram is the bottleneck of the compile..),
harddisk read/write/acess speed and CPU clock/arch are decisive factor of code transformation.
In your case: VS2012 is a bit heavy on memory, but I don't think it will actively spike on your CPU, so I doubt codeblocks will be any faster than VS2012,
since they use the same compiler but different IDE.
dirkmitt
Halfling
Posts: 40
Joined: Fri Sep 15, 2006 3:40 am
Contact:

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by dirkmitt »

I don't mean to sound disrespectful.

But in my honest opinion, there is simply no way the OP could have done, what he has claimed to do. Firstly, it won't work that you simply uninstall MinGW and then reinstall it. Why should that work? In order to solve the problem of linking to the Boost binaries, I needed to recompile Boost, using MinGW - Successfully, I might add.

But then, for a more cmplete explanation of why the directions that were given don't work, I suggest you read my related thread here:

http://www.ogre3d.org/forums/viewtopic.php?f=2&t=81474

And BTW, when I type in "gcc -v", I get

Code: Select all

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=m
ingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto
--enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++
,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-l
ibstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gm
p-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --
with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-
libgomp --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/
mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
Thread model: win32
gcc version 4.8.1 (GCC)
How did you solve

undefined reference to 'Ogre::StringUtil:BLANK'

And, I tried doing this using the WiKi Tutorial v1.9.x , because I could not find any download-link for examples for OGRE v1.8.1 . Admittedly, I might have a better chance at success, if I was to work with a Tutorial actually meant for use with OGRE v1.8.1 . But because I'm one eyelash-blink behind, it seems I'm SOL then?

-Dirk
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by c6burns »

dirkmitt wrote:undefined reference to 'Ogre::StringUtil:BLANK'
In 1.10 it's changed to Ogre::BLANKSTRING
dirkmitt wrote:download-link for examples for OGRE v1.8.1
http://www.ogre3d.org/tikiwiki/tiki-ind ... +Framework
Scroll to the bottom, and hit the button that says "15 files attached". The 1.8.1 frameworks are TutorialFramework.tar.bz2 and .zip (no 1-9 in the name)
dirkmitt
Halfling
Posts: 40
Joined: Fri Sep 15, 2006 3:40 am
Contact:

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by dirkmitt »

I thank you for pointing me in this direction.

I might as well be honest with you guys. Even though I'm a bit skeptical, you guys on this thread seem to be having slightly better go at this, than I am. And now I've tried out the Tutorial you suggested, getting any errors out of the way that are actually irrelevant to the question of compiling with MinGW and/or C::B .

I still get that 3rd error message, but also get some Boost warnings. So far those have been C::B "note"s. Yet, those could also evolve into full-blown Boost errors, if the compilation of the Tutorials in question ever get so far. Right now, those notes simply seem to be telling me, that the remaining error above occurs,

in definition of macro 'BOOST_PP_CAT_I'
(...)
in expansion of macro 'BOOST_RANGE_CONCEPT_ASSERT'

which could be a completely valid Boost concept... Yet, I also custom-compiled Boost v1.55 , not v1.50 .

What puzzled me was, Since my version of Boost is 3rd-party software, Where would it get the idea to test the OGRE SDK Binaries for a class member, if that class member was never declared? Or, Should I go into the OGRE include directory by hand, and correct such a declaration? I found in which header file ' static const string Ogre::StringUtil::BLANK ' is declared. Boost is scanning its objects up and down with asserts, maybe just as a newly-introduced feature in v1.55 ...

- Progress Report:

It turns out that the supplied object-code never defined the value of this member, which needs to be defined out-of-class. I.e., an intialization of such a type in the header file is not allowed, and was never attempted. And so what I did was to add on line 19 to the file BaseApplication.cpp of the tutorial, right after the #include "BaseApplication.h" :

Code: Select all

const std::string Ogre::StringUtil::BLANK = "";
Thus making it object code - i.e. thus making it 'text' .
Doing so got rid of this error fully, since the one value for this constant is now part of the application being compiled. But then I just get another error, which is harder to get rid of, which is

In response to line 49: ' delete mRoot; '
undefined reference to 'Ogre:Root:~Root()' :?

And in response to line 58:
undefined reference to 'Ogre::Root:showConfigDialog()'

I'm thinking, Could this ' mRoot ' thing just be another static member somewhere, which was declared but never initialized? But it's time for me to get to bed now... I'll have time another day, to see whether I can insert an initialization for mRoot ...

-Dirk
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by c6burns »

Are you using the precompiled 1.8.1 SDK and then trying to compile tutorial applications with a different version of mingw? Because difficulties arising from stuff like that is how precompiled mingw support got dropped in the first place. My understanding is that with mingw you will want to compile everything yourself with a consistent version throughout.
dirkmitt
Halfling
Posts: 40
Joined: Fri Sep 15, 2006 3:40 am
Contact:

Re: [SOLVED] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by dirkmitt »

My MinGW version is 4.8.1 .

I think I heard someplace, that the SDK was built with 4.7.x .

So I guess it's guilty on that one.

Dirk
dirkmitt
Halfling
Posts: 40
Joined: Fri Sep 15, 2006 3:40 am
Contact:

Re: [Success!] CODE::BLOCKS + Ogre + Boost + MinGW + GCC

Post by dirkmitt »

Hello.

As it turns out, the reason fw my declarations were in place, but for which the runtime absence of object-code was posing a problem was a stupid error I was making.

I had set the directories to search for the linker, but I had failed to set the exact libraries to link to.

Now that I have set up the project correctly, I've finally gotten the first Tutorial to run, which I had downloaded from the Wiki.

It displays a black screen, and the panels displaying the frame-rate (1000+ FPS). As actual part of the scene however, I have not been able to get it to display anything but just black. I'm going to make sure, that I haven't commented out some crucial code, that might change that.

I thank you very much for helping me, and apologize for having been skeptical. :D

Dirk

Edit: Yes, it is normal for a completely empty scene, belonging to an OGRE tutorial, that hasn't even defined any light-sources, just to render as black. I followed the next steps in the tutorial without any problems, and with about 6 lines of code, got it to display the Ogre-Head. So I could develop 3D Applications with what I have right now. Thank you again, guys, for helping me.
Post Reply