addressed sooner.
-Unarchiving
-===========
+Table of Contents:
+ - Installation
+ - Building wxWidgets
+ - Configuring the Build
+ - Building Applications Using wxWidgets
+
+
+Installation
+============
Please simply uncompress the .zip file manually into any directory.
However we advise avoiding using directories with spaces in their
with makefiles and other command-line tools.
-Configuration
-=============
-
In the majority of cases, you don't need to change the default
library build configuration. If you wish to change some of the build
options you need to edit the include/wx/msw/setup.h file enabling or
each of the build configurations which allows to have different
build options for different configurations too.
+See "Configuring the Build" section for more information.
-Compilation
-===========
+
+Building wxWidgets
+==================
The following sections explain how to compile wxWidgets with each supported
-compiler. Search for one of Microsoft/Borland/Watcom/Symantec/Metrowerks/
-Cygwin/Mingw32 to quickly locate the instructions for your compiler.
+compiler, see the "Building Applications" section about the instructions for
+building your application using wxWidgets.
+
+Search for one of Microsoft/Borland/Watcom/Symantec/Metrowerks/Cygwin/Mingw32
+to quickly locate the instructions for your compiler. Notice that the primary
+compilers for wxWidgets under MSW are Microsoft Visual C++ and GNU g++, other
+compilers are more rarely tested and might not work so please consider using
+one of these two if possible.
All makefiles and project are located in build\msw directory.
----------------------------------------------------------------
BUILD=release
- Builds release version of the library. It differs from default 'debug'
- in lack of appended 'd' in name of library, does not define __WXDEBUG__
- and not include debug information compiled into object files and the
- executable.
+ Builds release version of the library. It differs from default 'debug' in
+ lack of appended 'd' in name of library and uses the release CRT libraries
+ instead of debug ones. Notice that even release builds do include debug
+ information by default, see DEBUG_FLAG for more information about it.
SHARED=1
Build shared libraries (DLLs). By default, DLLs are not built
DEBUG_FLAG=0
DEBUG_FLAG=1
- If set to 1, define __WXDEBUG__ symbol, append 'd' to library name and do
- sanity checks at runtime. If set to 0, don't do it. By default, this is
- governed by BUILD option (if 'debug', DEBUG_FLAG=1, if 'release' it is 0),
- but it is sometimes desirable to modify default behaviour and e.g. define
- __WXDEBUG__ even in release builds.
+DEBUG_FLAG=2
+ Specifies the level of debug support in wxWidgets. Notice that
+ this is independent from both BUILD and DEBUG_INFO options. By default
+ always set to 1 meaning that debug support is enabled: asserts are compiled
+ into the code (they are inactive by default in release builds of the
+ application but can be enabled), wxLogDebug() and wxLogTrace() are available
+ and __WXDEBUG__ is defined. Setting it to 0 completely disables all
+ debugging code in wxWidgets while setting it to 2 enables even the time
+ consuming assertions and checks which are deemed to be unsuitable for
+ production environment.
DEBUG_INFO=0
DEBUG_INFO=1
- Same as DEBUG_FLAG in behaviour, this option affects whether debugging
- information is included in the executable or not.
+ This option affects whether debugging information is generated. If
+ omitted or set to 'default' its value is determined the value of
+ the BUILD option.
TARGET_CPU=AMD64|IA64
(VC++ only.) Set this variable to build for x86_64 systems. If unset, x86
enabled (without CFG, both of them would be put into same directory and there
would be conflicts between the files).
-General Notes
-=================================================================
-
-- Debugging: under Windows 95, debugging output isn't output in
- the same way that it is under NT or Windows 3.1.
- Please see DebugView available from http://www.sysinternals.com.
+Building Applications Using wxWidgets
+=====================================
+
+NB: The makefiles and project files provided with wxWidgets samples show which
+ flags should be used when building applications using wxWidgets so in case
+ of a problem, e.g. if the instructions here are out of date, you can always
+ simply copy a makefile or project file from samples\minimal or some other
+ sample and adapt it to your application.
+
+Independently of the compiler and make/IDE you are using you must do the
+following to use wxWidgets:
+
+* Add $WXWIN/include to the
+ - compiler
+ - resource compiler
+ include paths.
+* Define the following symbols for the preprocessor:
+ - __WXMSW__ to ensure you use the correct wxWidgets port.
+ - _UNICODE unless you want to use deprecated ANSI build of wxWidgets.
+ - NDEBUG if you want to build in release mode, i.e. disable asserts.
+ - WXUSINGDLL if you are using DLL build of wxWidgets.
+* Add $WXWIN/lib/prefix_lib-or-dll to the libraries path. The prefix depends
+ on the compiler, by default it is "vc" for MSVC, "gcc" for g++ and so on.
+* Add the list of libraries to link with to the linker input. The exact list
+ depends on which libraries you use and whether you built wxWidgets in
+ monolithic or default multlib mode and basically should include all the
+ relevant libraries from the directory above, e.g. "wxmsw29ud_core.lib
+ wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib
+ wxexpatd.lib" for a debug build of an application using the core library only
+ (all wxWidgets applications use the base library).
+
+
+Microsoft Visual C++ users can simplify the linker setup by prepending the
+directory $WXWIN/msvc to the include path (it must come before $WXWIN/include
+directory!) and omitting the last step: the required libraries will be linked
+in automatically using the "#pragma comment(lib)" feature of this compiler.