Cross Compiling wxWidgets Applications on Linux

From CodeBlocks
Revision as of 19:22, 16 March 2008 by Jens (Talk | contribs) (New page: Category:User Documentation This document is not yet ready, but I'm working on it. Please be patient. For the moment you can also look [,79...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This document is not yet ready, but I'm working on it. Please be patient.

For the moment you can also look here

Jens 18:22, 16 March 2008 (CET)

This document describes how to setup Code::Blocks to compile applications that use the wxWidgets toolkit for MS Windows from within Linux.
I tested it on debian sid, but it should also work on other distributions.

Needed software


You can download prebuild binaries Code::Blocks from the download page.

If you prefer to compile Code::Blocks yourself, you have the choice between downloading the sourcecode of the actual release as tarball from the official download page or to download the newest version via svn.
A guide to build Code::Blocks from svn can be found in the Nightly Cookbook.

The newest svn-versions are also available as prebuild binaries made available by users.
You can find links to the downloadpages in the actual posts in the Nightly Builds forum.


MingW32 is the cross-build version of the Minimalistic Gnu for Windows compiler suite (a port of the Gnu Compiler Suite for the MS Windows platform).
It is part of many linux distributions.

On debian the basepackage is called mingw32 and can be installed by typing
sudo apt-get install mingw32
at the command-line.

It's up to you to find out the name of the package and install it using your preferred package-manager or either compile it by hand.

wxWidgets cross-build

For debian-users I have made prebuild binary packages available on my server. I guess they are also usable on Ubuntu, but you have to try it yourself.

I don't know if there are downloadable packages available in/for other distros, but you can build it on your own.

You can download the source-code either from my server's software pool or from the wxWidgets download page.

Unpack the sources and type configure it with
./configure prefix=/usr/i586-mingw32msvc --host=i586-mingw32msvc --enable-unicode --disable-shared

The prefix depends on your MinGW32 installation, either does the host. The other switches can be changed as you prefer it, with oine exception (at the moment):
I wasn't able to build any application with the shred version of wxWidgets and to run it on MS WIndows. It only works with statically linked dll's.

You can see the available switches with
./configure --help

If everything wents right you get a message like this:

Configured wxWidgets 2.8.7 for `i586-pc-mingw32msvc'

  Which GUI toolkit should wxWidgets use?                     msw
  Should wxWidgets be compiled into single library?       yes
  Should wxWidgets be compiled in debug mode?          no
  Should wxWidgets be linked as a shared library?         no
  Should wxWidgets be compiled in Unicode mode?       yes
  What level of wxWidgets compatibility should be enabled?
                                                         wxWidgets 2.4      no
                                                         wxWidgets 2.6      yes
  Which libraries should wxWidgets use?
                                                         jpeg                     builtin
                                                         png                      builtin
                                                         regex                   builtin
                                                         tiff                        builtin
                                                         zlib                       builtin
                                                         odbc                    no
                                                         expat                   builtin
                                                         libmspack            no
                                                         sdl                       no

Now you can build the libraries with

make install

In the further part of this document I'll use the paths I used in the example configure-line.