compile error

BlitzMax Forums/MiniB3D Module/compile error

slenkar(Posted 2008) [#1]
Hi I reinstalled blitzmax, updated to the latest version.
Then downloaded B3D, pasted the sidesign.mod folder into my mod folder.
Then I did 'build modules'-dont know if it was sucessful because I walked away
then I tried to run the bird demo and got this:

Linking:BirdDemo.debug.exe
C:/Program Files/BlitzMax/minib3d-v0452/inc/.bmx/cfuncs.cpp.debug.win32.x86.o:cfuncs.cpp:(.text+0x16): undefined reference to `std::__default_alloc_template<true, 0>::allocate(unsigned int)'
C:/Program Files/BlitzMax/minib3d-v0452/inc/.bmx/cfuncs.cpp.debug.win32.x86.o:cfuncs.cpp:(.text$_ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E[__ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E]+0x24): undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
C:/Program Files/BlitzMax/minib3d-v0452/inc/.bmx/cfuncs.cpp.debug.win32.x86.o:cfuncs.cpp:(.text$_ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS3_[__ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS3_]+0x1c): undefined reference to `std::__default_alloc_template<true, 0>::allocate(unsigned int)'
C:/Program Files/BlitzMax/minib3d-v0452/inc/.bmx/cfuncs.cpp.debug.win32.x86.o:cfuncs.cpp:(.text$_ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS3_[__ZNSt8_Rb_treeI6VectorSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE9_M_insertEPSt18_Rb_tree_node_baseSB_RKS3_]+0xd6): undefined reference to `std::__default_alloc_template<true, 0>::allocate(unsigned int)'
C:/Program Files/BlitzMax/minib3d-v0452/inc/.bmx/cfuncs.cpp.debug.win32.x86.o:cfuncs.cpp:(.text$_ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIK6VectorS2_EESt24__default_alloc_templateILb1ELi0EEE10deallocateEPS5_j[__ZNSt14__simple_allocISt13_Rb_tree_nodeISt4pairIK6VectorS2_EESt24__default_alloc_templateILb1ELi0EEE10deallocateEPS5_j]+0x14): undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
Build Error: Failed to link C:/Program Files/BlitzMax/minib3d-v0452/demos/bird/BirdDemo.debug.exe
Process complete



simonh(Posted 2008) [#2]
Do you have MinGW installed?


slenkar(Posted 2008) [#3]
yes,
I installed it about a month ago so I think its the latest version


simonh(Posted 2008) [#4]
And you have the environment variable set up?


slenkar(Posted 2008) [#5]
I have:
MINGW c:\mingw
and
Path c:\mingw\bin\;

hang on a minute I have user and system variables. I only have system variables set.

I forgot to mention they are linking errors and not compilation errors


Sledge(Posted 2008) [#6]
Oh I just thought I'd try the latest version and I get this also. I've uninstalled MinGw and downloaded the latest version for good measure but it doesn't help -- modules compile, non-MiniB3D stuff compiles fine, but anything using MiniB3D (whether as an include or module) fails in the same way as Paxman's.

What should the environment variables actually be? I don't see how they can be wrong but obviously something is.

EDIT: Fixed! It's the same problem as with the Freeaudio mod in the prior Max update -- you need to copy ar.exe and ld.exe from the MinGW/bin dir to the blitzmax/bin dir because Max's are out of date(?!).


simonh(Posted 2008) [#7]
Really? It should work with a normal Max install. Are you using 1.28?

I have:
MINGW c:\mingw
and
Path c:\mingw\bin\;

I only have system variables set.

Yes that should be all you need.

Maybe I'll provide a pre-built module next time. Too many hassles with MinGW for most people.


ckob(Posted 2008) [#8]
works fine for me I took a plunge and converted my current project to the newest version and had no troubles at all.


Sledge(Posted 2008) [#9]
Really? It should work with a normal Max install. Are you using 1.28?

Was that directed at me? Anyway I am but I went through 1.26 previously. Reading that thread I linked to, it looks like 'Rebuild All Modules' might be what causes the problem if you use that rather than Ctrl+D.

A pre-built module is a nice gesture but I think it's preferable for people to realise if Max isn't working right because, for instance, the problem that stops MiniB3D compiling also stops FreeAudio compiling (which, once I spotted it, is how I managed to search out the solution, but I nearly missed it and had it not been for MiniB3D falling over I might not have noticed for ages).


slenkar(Posted 2008) [#10]
yeah Im using 1.28 I upgraded before I started to install miniB3D,


johnnyfreak(Posted 2008) [#11]
I've have the same problem...

I use blitzMax 1.28

The env variables are setted for MiniGW

I' added the sidesign.mod into the /mod folder

I've rebuild modules (ctrl+D)

I've changed ar.exe and ld.exe from the MinGW/bin

BUT the same error occurs :(


danielos(Posted 2008) [#12]
MinGW has to be re-installed as G++ and objective C++ compiller...
That worked for me :)


slenkar(Posted 2008) [#13]
mingw has to be deleted first too