BlitzMax does not compile

Archives Forums/Linux Discussion/BlitzMax does not compile

danvari(Posted 2008) [#1]
hello!

i am using ubuntu 64-bit and have no problem with it except blitzmax. i can run maxide, but if i try to compile sth. lets say print "hello" i will get the following error:

Building untitled1
Compiling:untitled1.bmx
flat assembler version 1.64
3 passes, 2840 bytes.
Linking:untitled1.debug
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/../../../../lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/../../../../lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/../../../libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/../../../libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
Build Error: Failed to link /home/stephan/BlitzMax118_Linux/BlitzMax/tmp/untitled1.debug
Process complete




i do not know how to solve this. i have gcc3.3 and 32bit libs installed.
:-\


Brucey(Posted 2008) [#2]
You don't appear to have the X11 developer libs installed

I think it's called libx11-dev


danvari(Posted 2008) [#3]
libx11-dev is already installed :-\

any other idea?


danvari(Posted 2008) [#4]
if i try to build modules i will get compile error 27 and that debug:

Building Modules
Compiling:blitz_app.c
In Datei, eingefügt von /usr/include/features.h:345,
von /usr/include/ctype.h:27,
von /home/stephan/BlitzMax118_Linux/BlitzMax/mod/pub.mod/stdc.mod/stdc.h:5,
von /home/stephan/BlitzMax118_Linux/BlitzMax/mod/brl.mod/blitz.mod/blitz.h:5,
von /home/stephan/BlitzMax118_Linux/BlitzMax/mod/brl.mod/blitz.mod/blitz_app.c:2:
/usr/include/gnu/stubs.h:7:27: gnu/stubs-32.h: No such file or directory
Build Error: failed to compile /home/stephan/BlitzMax118_Linux/BlitzMax/mod/brl.mod/blitz.mod/blitz_app.c
Process complete


Brucey(Posted 2008) [#5]
Perhaps you need the 32-bit developer headers etc installed?


Manromen(Posted 2008) [#6]
You need the 32-bit Emulator.
Maybe this helps: http://www.blitzbasic.com/Community/posts.php?topic=72867


dawlane(Posted 2008) [#7]
Sound more like you will have to build the libX11 to a 32bit lib and then link to the 32bit libs.


Craig Watson(Posted 2008) [#8]
I would try linking using the GCC 4 executables instead of 3.3.

AFAIK recent versions of Ubuntu 64-bit have dropped some of the 3.3 compatible 32-bit libraries.

Unless BMax is now defaulting to gcc/g++ instead of forcing 3.3 now (haven't tried lately.)


danvari(Posted 2008) [#9]
thank you :)

i deinstalled g++3.3 and installed g++4.1 and linked g++4.1 to g++3.3. now i will get the following error:

Building untitled1
Compiling:untitled1.bmx
flat assembler version 1.64
3 passes, 2840 bytes.
Linking:untitled1.debug
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: cannot find -lX11
collect2: ld gab 1 als Ende-Status zurück
Build Error: Failed to link /home/stephan/BlitzMax118_Linux/BlitzMax/tmp/untitled1.debug
Process complete


Craig Watson(Posted 2008) [#10]
Did you rebuild modules?


skidracer(Posted 2008) [#11]
Is 32 bit x11 not included with ia32-libs? You have installed ia32-libs?


dawlane(Posted 2008) [#12]
Re-building the modules will not work (I already know this as I have tried it my self) and if he tries to modify BMK and compile he will hit another lovely problem relating to libstdc++.


dawlane(Posted 2008) [#13]
The ia32-libs for some reason does not include the 32bit X11 libs (or the devs).


Craig Watson(Posted 2008) [#14]
I have a fresh 7.10 64-bit install, I guess I'll try it out tonight.

stubs-32.h is in package: libc6-dev-i386


dawlane(Posted 2008) [#15]
Having to manually copy the libs from the 32bit deb packages and place them into the /usr/lib32 directory. Got the libX11 sorted out, then you come across libGL, then libGLU now at libXxf86


dawlane(Posted 2008) [#16]
Well I got one of the samples to compile and link and guess what.... "IT CRASHED AND BURNED", so I did something wrong somewhere ?

Here's a list of the libs you need to compile. Don't worry about it saying "skipping incompatible", it will find the 32bit ones as long as you system link.

/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libGLU.so when searching for -lGLU
/usr/bin/ld: skipping incompatible /usr/lib/libGLU.a when searching for -lGLU
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libXxf86vm.so when searching for -lXxf86vm
/usr/bin/ld: skipping incompatible /usr/lib/libXxf86vm.a when searching for -lXxf86vm
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libX11.so when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libX11.a when searching for -lX11
/usr/bin/ld: skipping incompatible /usr/lib/libXxf86vm.so when searching for -lXxf86vm
/usr/bin/ld: skipping incompatible /usr/lib/libXxf86vm.a when searching for -lXxf86vm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc_eh.a when searching for -lgcc_eh
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc_eh.a when searching for -lgcc_eh
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc_eh.a when searching for -lgcc_eh
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.1.3/libgcc_eh.a when searching for -lgcc_eh


Craig Watson(Posted 2008) [#17]
This is what I've got so far.

Do the following from terminal:

sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
sudo ln -s /usr/lib32/libGLU.so.1 /usr/lib32/libGLU.so
sudo ln -s /usr/lib32/libXxf86vm.so.1 /usr/lib32/libXxf86vm.so
sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so
sudo apt-get install gcc-multilib

You may have better luck linking libstdc++.so.5 instead of 6 (made no difference to the crashing here).

Seems as if you rebuild modules against 3.3, then do the regular app building with 4.0 everything works. Try to build modules with 4.0 and it'll segfault as soon as it tries to allocate a graphics surface. Otherwise general app stuff works OK and MaxGUI stuff (other than canvases) works fine.


dawlane(Posted 2008) [#18]
Add this system link as well
sudo ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so

Then every thing should work (apart that you can not build/rebuild modules. Unless you build against the 3.3 libs)

Edit: Note even rebuilding modules in 32bit Ubuntu with any thing other than 3.3 will fail.