BlitzMax does not compile
Archives Forums/Linux Discussion/BlitzMax does not compile
| ||
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. :-\ |
| ||
You don't appear to have the X11 developer libs installed I think it's called libx11-dev |
| ||
libx11-dev is already installed :-\ any other idea? |
| ||
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 |
| ||
Perhaps you need the 32-bit developer headers etc installed? |
| ||
You need the 32-bit Emulator. Maybe this helps: http://www.blitzbasic.com/Community/posts.php?topic=72867 |
| ||
Sound more like you will have to build the libX11 to a 32bit lib and then link to the 32bit libs. |
| ||
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.) |
| ||
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 |
| ||
Did you rebuild modules? |
| ||
Is 32 bit x11 not included with ia32-libs? You have installed ia32-libs? |
| ||
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++. |
| ||
The ia32-libs for some reason does not include the 32bit X11 libs (or the devs). |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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. |
| ||
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. |