wxMax Compile problems
BlitzMax Forums/Brucey's Modules/wxMax Compile problems
| ||
Hi, I managed to get BlitzMax up and running on 64bit Ubuntu. The game samples work fine. I installed wxMax and rebuilt the modules. I don't think anything went wrong, but I can't compile any of the samples. I get this error: Building statbar Compiling:statbar.bmx flat assembler version 1.64 4 passes, 66398 bytes. Linking:statbar.debug I: [hardy chroot] Running command: “g++-3.3 -m32 -s -Os --eh-frame-hdr -pthread -static-libgcc -o /home/sysop/BlitzMax/mod/wx.mod/samples/statbar.debug /home/sysop/BlitzMax/tmp/ld.tmp -L/usr/X11R6/lib -L/usr/lib -L/home/sysop/BlitzMax/lib -L/home/sysop/BlitzMax/mod/wx.mod/wx.mod/../lib/linux” /usr/bin/ld: cannot find -ltiff collect2: ld returned 1 exit status Build Error: Failed to link /home/sysop/BlitzMax/mod/wx.mod/samples/statbar.debug Process complete I tried installing -ltiff 3 different ways. Synaptic32 and Synaptic both report it as being installed, but still no luck. Any advice??? Thanks mrburns |
| ||
I think you need the libtiff "dev" package installed. I believe it is called libtiff-dev |
| ||
Hi Brucey, Thanks for the reply. The only libtiff-dev I could find was libtiff4-dev. I tried installing that one and I get this error: Building hello_world Compiling:hello_world.bmx flat assembler version 1.64 3 passes, 4399 bytes. Linking:hello_world.debug I: [hardy chroot] Running command: “g++-3.3 -m32 -s -Os --eh-frame-hdr -pthread -static-libgcc -o /home/sysop/BlitzMax/mod/wx.mod/samples/hello_world.debug /home/sysop/BlitzMax/tmp/ld.tmp -L/usr/X11R6/lib -L/usr/lib -L/home/sysop/BlitzMax/lib -L/home/sysop/BlitzMax/mod/wx.mod/wx.mod/../lib/linux” Executing:hello_world.debug /usr/bin/ld: warning: libstdc++.so.6, needed by /usr/bin/../lib/libcairo.so.2, may conflict with libstdc++.so.5 Fatal Error: Mismatch between the program and library build versions detected. The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6), and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6). Aborted Process complete I'm not sure what to do next. Thanks for the help! mrburns |
| ||
Funny, I found this thread while I was googling for a solution to what seems to be the same problem. Were you able to fix this? |
| ||
You need to build wxWidgets with the same version of gcc as you are building your BlitzMax binaries. Why? Since the library is C++, the ABI changes from version to version. 4.x static lib won't work with a 3.x linker. So, you either build wxWidgets with the same as you are using with BlitzMax (3.3 is it?), or... you make BlitzMax build with 4.x... Alas, I can't seem to get Blitz to work properly with 4.x these days - although it used to. I get errors when the binary runs. |
| ||
Ok, but where can I make that decision? I didn't choose any compiler version anywhere, at least not knowingly. By the way, when I build maxide, it also fires me a similar warning, but about a libGLU. But at least MaxIDE runs, both with FLTK and your GTKMaxGUI module. Here's something else, it might be related to the changes for multithreading: Most of the samples coming with BlitzMax don't run anymore on either Windows or Linux. First, I have to add a bunch of Import statements and then they all blow themselves into Nirvana (Digesteroids and Breakout, for example). The MaxGUI sample GLCube runs after adding some imports. On OS X, everything works just fine and without the need to add Import statements. Very strange. |
| ||
I've just found out that gcc is a symbol link to gcc<4xyzwhatever>. I changed it to point to gcc3 and now try my link one last time with rebuilding everything with that version of gcc. |
| ||
Hi, I never actually found a solution to this problem, so I just installed 32 bit Ubuntu on my amd64. Everything was working fine, but now that you mentioned it, I too am getting errors when I try to compile samples (firepaint.bmx). Oddly, wxMax works without a problem! I thought it may have been because I was using the community version of Max IDE instead of the official one, but I still get the same error. This isn't really a problem right now for me because I'm concentrating on wxMax apps at the moment. I would recommend installing 32bit because I think it solves a few other problems such as Flash sites. With 64bit, Flash seems to work only when it wants to. Linking:firepaint.debug /usr/bin/ld: cannot find -lGL collect2: ld returned 1 exit status Build Error: Failed to link /home/sysop/programs/BlitzMax/samples/firepaint/firepaint.debug mrburns |
| ||
I too am getting errors when I try to compile samples You need to install some packages... possibly : xlibmesa-gl-dev xlibmesa-glu-dev (see this post for guides to getting everything you need) |
| ||
Thanks, mrburns. You're luckier than me. I am using 32-Bit Ubuntu 8.04.1, and whenever I want to compile a wxMax app, I am getting this libcairo error. Recompiling everything with gcc3 (as I mentioned above) didn't help. I think I'll give up now. I'll book it as yet another frustrating Linux experience. At least it helped with another decision that I have to make, namely which web server I am going to rent next. It won't be a Linux box - that platform is too unpredictable and too unproductive for my liking. I liked figuring out crap like that when I was a teenager, but at 38, I just hate wasting my time with such things. I do not want to come into a situation where my sanbox VM at home compiles a program of mine perfectly but when I deploy it on my server, I'll get weird error message like I'm getting them now. No, thank you very much. Anyway, thanks a lot, Brucey, for your help and support - it's much appreciated! Going back to OS X and Windows now... ;-) |
| ||
I am getting this libcairo error. That isn't actually an error - just a warning. The error will likely be because of either : 1) you built wxWidgets static libs with 4.x and wxMax with 3.x 2) you built both with 3.x, but there is a shared version of wxWidgets on the box which is being picked up ahead of the static libs at link time, which were built with 4.x No 2 is interesting. I'm guessing that we aren't using -static as a gcc option on Linux? That should force the use of static libs over shared. If we are using that then I guess I dunno :-p I'll have to have a rummage around the bmk code when I get home. |
| ||
Thanks, Brucey. Whatever it was, it was more than just a warning: The beast stopped compiling. But you're right, wxWidgets probably was compiled with gcc4, which is the default compiler on Ubuntu 8.04. But I've given up on Linux and actually deleted the VM and the ISO image that I used to install it. This little endeavor only adds to the list why I prefer FreeBSD before all other open source systems. Anyway, I'll stay on OS X with a little Vista by the side and my next rented server will be running Windows Server 2003. But again, thanks for all your help! |
| ||
New Problem: Getting this error while trying to compile the latest wxmax revision: Compiling:editors.cpp D:/BlitzMax/mod/wx.mod/wxpropgrid.mod/src/editors.cpp: In member function `wxWindow* wxPropertyGrid::GenerateEditorButton(const wxPoint&, const wxSize&)': D:/BlitzMax/mod/wx.mod/wxpropgrid.mod/src/editors.cpp:2056: error: `wxS' was not declared in this scope Build Error: failed to compile D:/BlitzMax/mod/wx.mod/wxpropgrid.mod/src/editors.cpp I changed wxS to wxT and all worked fine. |
| ||
It builds here. wxS() is apparently a valid method. Try deleting the .bmx folder in /src and see if that fixes it. Ah... from wxchar.h : /* this macro exists only for forward compatibility with wx 3.0 */ #define wxS(x) _T(x) You might want to update your headers. Looks like it's some more recently added functionality. |
| ||
Yeah, I updated headers, currently compiling (will take a while). Hopefully it'll work (The line you posted ist in the new header file, so im confident). You might upload the new headers to the google-code-page, so everybody can see them there and maybe you might post it in a thread, so everybody sees it. |
| ||
You might upload the new headers to the google-code-page They are here : http://code.google.com/p/wxmax/downloads/detail?name=wxwidgets_2.8.8_headers.zip Don't forget, you'll need the matching static libs too. |