-wxWidgets 2.6 for GTK+ installation
------------------------------------
+wxWidgets for GTK+ installation
+-------------------------------
IMPORTANT NOTE:
When sending bug reports tell us what version of wxWidgets you are
using (including the beta) and what compiler on what system. One
- example: wxGTK 2.6.0, gcc 2.95.4, Redhat 6.2
+ example: wxGTK 2.8.0, gcc 3.4.5, Fedora Core 4
* The simplest case
-------------------
> su <type root password>
> make install
> ldconfig
-> exit
+[if you get "ldconfig: command not found", try using "/sbin/ldconfig"]
-Afterwards you can continue with:
-
-> make
-> su <type root password>
-> make install
-> ldconfig
-> exit
-
-(If you don't do the 'make install' part, you can still
-use the libraries from the buildgtk directory, but they
-will not be available to other users.)
+If you don't do the 'make install' part, you can still use the libraries from
+the buildgtk directory, but they may not be available to other users.
If you want to remove wxWidgets on Unix you can do this:
> su <type root password>
> make uninstall
> ldconfig
-> exit
-Note that by default, GTK+ 2 is used. GTK+ 1 can be specified
-with --with-gtk1.
+Note that by default, GTK+ 2.X is used. GTK+ 1.2 can be specified
+with --with-gtk=1.
* The expert case
-----------------
them concurrently. To do this, create a separate directory for each build
of wxWidgets - you may also want to create different versions of wxWidgets
and test them concurrently. Most typically, this would be a version configured
-with --enable-debug and one without. Note, that only one build can
-currently be installed with 'make install', so you'd have to use local version of
-the library for that purpose.
+with --enable-debug and one without.
For building three versions (one GTK+, one Motif and a debug version of the GTK
source) you'd do this:
-md buildmotif
+mkdir buildmotif
cd buildmotif
../configure --with-motif
make
cd ..
-md buildgtk
+mkdir buildgtk
cd buildgtk
../configure --with-gtk
make
cd ..
-md buildgtkd
+mkdir buildgtkd
cd buildgtkd
../configure --with-gtk --enable-debug
make
cd ..
+Note that you can install all those libraries concurrently, you just need to
+pass the appropriate flags when using them.
+
* The simplest errors
---------------------
For any configure errors: please look at config.log file which was generated
during configure run, it usually contains some useful information.
-configure reports, that you don't have GTK+ 1.2 installed although you are
+configure reports, that you don't have GTK+ 1.2/2.0 installed although you are
very sure you have. Well, you have installed it, but you also have another
version of the GTK+ installed, which you may need to remove including other
-versions of glib (and its headers). Or maybe you installed it in non default
+versions of glib (and its headers). Or maybe you installed it in a non-default
location and configure can't find it there, so please check that your PATH
-variable includes the path to the correct gtk-config. Also check that your
-LD_LIBRARY_PATH or equivalent variable contains the path to GTK+ libraries if
-they were installed in a non default location.
+variable includes the path to the correct gtk-config/pkg-config. Also check
+that your LD_LIBRARY_PATH or equivalent variable contains the path to GTK+
+libraries if they were installed in a non-default location.
You get errors from make: please use GNU make instead of the native make
program. Currently wxWidgets can be built only with GNU make, BSD make and
library but not for your program - or due to using a compiler with optimisation
bugs.
-Linker complains about missing PROIO_yy_flex_alloc and similar symbols: you
-probably have an old version of flex, 2.5.4 is recommended.
-
* The simplest program
----------------------
---------------
wxWidgets/GTK+ requires the GTK+ library to be installed on your system. It has
-to be a stable version, preferably version 1.2.10 (at least 1.2.3 is required,
-1.2.7 is strongly recommended).
+to be a stable version, preferably GTK+ 2.x.y, where x is an even number.
+GTK+ version 1.2 is highly discouraged, but if you decide to still use it,
+please use version 1.2.10 (at least 1.2.3 is required, 1.2.7 is strongly recommended).
You can get the newest version of the GTK+ from the GTK+ homepage at:
even older ones are expected to work most of the time.
You'll need OS/2 Warp (4.51) or eCS(1.0), X-Free86/2 (3.3.6 or newer),
-GTK+ (1.2.5 or newer), emx (0.9d fix 4), flex (2.5.4), yacc (1.8) or
-bison (1.25), a Unix like shell (pdksh-5.2.14 or ash), Autoconf (2.57),
-GNU file utilities (3.13), GNU text utilities (1.19),
+GTK+ (1.2.5 or newer), emx (0.9d fix 4), a Unix like shell (pdksh-5.2.14 or
+ash), Autoconf (2.57), GNU file utilities (3.13), GNU text utilities (1.19),
GNU shell utilites (1.12), m4 (1.4), sed (2.05), grep (2.0), Awk (3.0.3),
GNU Make (3.75).
Presence of Posix/2 will be auto-detected.
Open an OS/2 prompt and switch to the directory above.
-Set MAKESHELL (and depending on your installation also INSTALL, for me
-it tends to try to use the system's tcpip\pcomos\install.exe which causes
-problems...) to a Unix like shell, e.g.
+Set MAKESHELL or MAKE_SHELL (which one is needed depends on the version of
+make) to a Unix like shell, e.g.
SET MAKESHELL=ash
-
-Be warned that depending on the precise version of your make, the
-variable that needs to be set might be MAKE_SHELL instead of MAKESHELL.
If you have a really deficient version of GNU make, it might even be
necessary to set SHELL or even COMSPEC to a unix like shell as well.
+Depending on your installation you might want to also set INSTALL, for me
+it tends to try to use the system's tcpip\pcomos\install.exe which causes
+problems, e.g.
+SET INSTALL=<path_to_src_directory>/install-sh -c
Notice that the delivered configure scripts are fully OS/2 aware, so you
can simply run
- ash -c "configure --with-gtk"
+ ash -c "configure --with-gtk=1"
and make and possibly make install as described above.
* Building wxGTK on SGI
The SGI native compiler support has only been tested on Irix 6.5.
+* Building wxGTK on Cygwin
+--------------------------
+
+The normal build instructions should work fine on Cygwin. The one difference
+with Cygwin is that when using the "--enable-shared" configure option (which
+is the default) the API is exported explicitly using __declspec(dllexport)
+rather than all global symbols being available.
+
+This shouldn't make a difference using the library and should be a little
+more efficient. However if an export attribute has been missed somewhere you
+will see linking errors. If this happens then you can work around the
+problem by setting LDFLAGS=-Wl,--export-all-symbols. Please also let us know
+about it on the wx-dev mailing list.
+
* Create your configuration
---------------------------
./configure options
If you want to use system's C and C++ compiler,
-set environment variables CC and CCC as
+set environment variables CC and CXX as
% setenv CC cc
% setenv CXX CC
Normally, you won't have to choose a toolkit, because when
you download wxGTK, it will default to --with-gtk etc. But
-if you use all of our CVS repository you have to choose a
+if you use all of our SVN repository you have to choose a
toolkit. You must do this by running configure with either of:
- --with-gtk Use the GIMP ToolKit (GTK+). Default.
- --with-gtk2 Use the GTK+ 2.0. Default.
- --with-gtk1 Use the GTK+ 1.2. Default.
+ --with-gtk=2 Use the GTK+ 2.0. Default.
+ --with-gtk=1 Use the GTK+ 1.2.
--with-motif Use either Motif or Lesstif
Configure will look for both.
such as Sun with gcc 2.8.X which
would otherwise produce segvs.
- --enable-unicode Enable Unicode support. Default for GTK+2.0
+ --enable-unicode Enable Unicode support.
--enable-profile Add profiling info to the object
files. Currently broken, I think.
--with-odbc Enables ODBC code. This is disabled
by default because iODBC is under the
L-GPL license which is less liberal than
- wxWidgets license.
+ wxWindows licence.
--without-libpng Disables PNG image format code.
Using this way, a make file for the minimal sample would look
like this
-CC = gcc
+CXX = g++
minimal: minimal.o
- $(CC) -o minimal minimal.o `wx-config --libs`
+ $(CXX) -o minimal minimal.o `wx-config --libs`
-minimal.o: minimal.cpp mondrian.xpm
- $(CC) `wx-config --cxxflags` -c minimal.cpp -o minimal.o
+minimal.o: minimal.cpp
+ $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o
clean:
rm -f *.o minimal