]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/msw/install.txt
Warning fix for eVC4 build.
[wxWidgets.git] / docs / msw / install.txt
index 391ad16480c2c7141e918cbde120f74e680ac642..2ecc84b31bc977c4ac1454ab286352b2fc96cf42 100644 (file)
@@ -1,10 +1,11 @@
-Installing wxWidgets 2.5.4
---------------------------
+Installing wxWidgets 2.8.0
+-----------------------------------------------------------
 
-This is wxWidgets 2.5.4 for Microsoft Windows 9x/ME, Windows NT, Windows 2000
-and Windows XP. This is an unstable development release. Note that unstable in
-this context doesn't mean that it crashes a lot, just that the library API may
-change in backwards incompatible way during the 2.5 branch lifetime.
+This is wxWidgets 2.8.0 for Microsoft Windows 9x/ME, Windows NT,
+Windows 2000, Windows XP and Windows CE.
+
+These installation notes can be found in docs/msw/install.txt
+in your wxWidgets distribution.
 
 IMPORTANT NOTE: If you experience problems installing, please
 re-read this instructions and other related files (changes.txt,
@@ -19,7 +20,7 @@ Please report bugs using the SourceForge bug tracker:
   http://sourceforge.net/bugs/?group_id=9863
 
 Unarchiving
-===========
+============================================================
 
 A setup program is provided (setup.exe) to automatically copy
 files to a directory on your hard disk. Do not install into a
@@ -107,16 +108,16 @@ Below are compiler specific notes followed by customizing instructions that
 apply to all compilers (search for "Configuring the build").
 
 Microsoft Visual C++ compilation
---------------------------------
+----------------------------------------------------------------
 
 You may wish to visit http://wiki.wxwindows.org/wiki.pl?MSVC for a more
 informal and more detailed description of the process summarized below.
 
 Please note that the VC++ 6.0 project files will work for VC++ .NET also.
 
-Also note that you can make the project files work with VC++ 5.0 but you'll
-need to edit .dsp file by hand before this is possible (change the version in
-the .dsp file header from 6.0 to 5.0).
+VC++ 5.0 can also be used, providing Service Pack 3 is applied. Without it
+you will have trouble with internal compiler errors. It is available for
+download at: ftp://ftp.microsoft.com/developr/visualstudio/sp3/full.
 
 Using project files (VC++ 6 and later):
 
@@ -131,9 +132,17 @@ Using project files (VC++ 6 and later):
    know you won't need some of the libraries (i.e. html part), you don't have
    to compile it.  It will also produce similar variations on jpeg.lib,
    png.lib, tiff.lib, zlib.lib, and regex.lib.
-   If you want to build DLLs, you have to either build them one by one in
-   proper order (jpeg, png, tiff, zlib, regex, expat, base, core, the rest
-   in any order) or to use wx_dll.dsw workspace which has correct dependencies.
+
+   If you want to build DLL configurations in wx.dsw project you unfortunately
+   need to build them in the proper order (jpeg, png, tiff, zlib, regex, expat,
+   base, net, odbc, core, gl, html, media, qa, adv, dbgrid, xrc, aui, richtext)
+   manually because VC6 doesn't always respect the correct build order.
+
+   Alternatively, use the special wx_dll.dsw project which adds the
+   dependencies to force the correct order (but, because of this, doesn't work
+   for the static libraries) or simply redo the build several times until all
+   DLLs are linked correctly. Pleae notice that it's normal that dbgrid project
+   doesn't build if wxUSE_ODBC is set to 0 (default).
 3. Open a sample project file, choose a configuration such as
    Win32 Debug using Build | Set Active Configuration..., and compile.
    The project files don't use precompiled headers, to save disk
@@ -185,10 +194,89 @@ Note (4): to create your own IDE files, copy .dsp and .dsw
 files from an existing wxWidgets sample and adapt them, or
 visit http://wiki.wxwindows.org/wiki.pl?MSVC.
 
-Borland C++ 5.0/5.5 compilation
--------------------------------
+Microsoft Visual C++ compilation for 64-bit Windows
+----------------------------------------------------------------
+
+Visual Studio 2005 includes 64-bit compilers, though they are not installed by
+default; you need to select them during the installation. Both native 64-bit
+compilers and 32-bit hosted cross compilers are included, so you do not need a
+64-bit machine to use them (though you do to run the created executables).
+Visual C++ Express Edition does not include 64-bit compilers.
+
+64-bit compilers are also available in various SDKs, for example
+the .NET Framework SDK:
+    http://msdn.microsoft.com/netframework/programming/64bit/devtools/
+
+Using project files:
+
+1. Open the VC++ 6 workspace file: build\msw\wx.dsw. Visual Studio will then
+   convert the projects to the current Visual C++ project format.
+
+2. To add 64-bit targets, go to the 'Build' menu and choose 'Configuration
+   Manager...'.  In the 'Active solution platform' drop down choose '<new>',
+   then you can choose either 'Itanium' or 'x64'.
+
+   For more detailed instructions see:
+    http://msdn2.microsoft.com/en-us/library/9yb4317s(en-us,vs.80).aspx
+
+   Note: 64-bit targets created this way will use the build directory of the
+         corresponding 32-bit target for some files. Therefore after building
+         for one CPU it is necessary to clean the build before building the
+         equivalent target for another CPU. We've reported the problem to MS
+         but they say it is not possible to fix it.
+
+3. To build, go to the 'Build' menu and choose 'Batch Build...'. Tick all the
+   all the 'x64|Debug' or all the 'Itanium|Debug' projects, and click 'Build'.
+
+   This will build a debug version of the static libs. The section above on
+   Visual C++ in general has more information about adjusting the settings to
+   build other configurations.
+
+4. To compile one of the samples open one of the sample projects, such as
+   samples\minimal\minimal.dsw. Visual Studio will convert the project as in
+   step 1, then add a 64-bit target as in step 2, and build.
+
+Using makefiles:
+
+1. Open a 64-bit build command prompt, for either x64 or Itanium. Change
+   directory to build\msw. Then for x64 type:
+
+    nmake -f makefile.vc TARGET_CPU=AMD64
+
+   or for Itanium:
+
+    nmake -f makefile.vc TARGET_CPU=IA64
 
-Compiling using the makefiles (updated 24 Sept 02):
+   This will build a debug version of wxWidgets DLLs. See "Configuring the
+   build" for instruction how to build other configurations such as a release
+   build or static libraries.
+
+2. Change to the directory of one of the samples such as samples\minimal. Type
+   the same command used to build the main library, for example for x64:
+
+    nmake -f makefile.vc TARGET_CPU=AMD64
+
+Notes:
+
+The versions of the VC++ 8 compiler included with some SDKs requires an
+additional library to be linked or the following error is received.
+
+    LNK2001 unresolved external symbol __security_check_cookie
+
+If you receive this error add bufferoverflowu.lib to link, e.g.:
+
+    nmake -f makefile.vc TARGET_CPU=AMD64 LDFLAGS=bufferoverflowu.lib
+
+See http://support.microsoft.com/?id=894573 for more information.
+
+Borland C++ compilation
+----------------------------------------------------------------
+
+The minimum version required is 5.5 (last version supported by BC++ 5.0 was
+2.4.2), which can be downloaded for free from:
+http://www.borland.com/products/downloads/download_cbuilder.html#
+
+Compiling using the makefiles:
 
 1. Change directory to build\msw. Type 'make -f makefile.bcc' to
    make the wxWidgets core library. Ignore the compiler warnings.
@@ -211,11 +299,11 @@ recompile wxWidgets. The same applies if compiling using the IDE.
 Note (3): If you wish debug messages to be sent to the console in
 debug mode, edit makefile.bcc and change /aa to /Tpe in link commands.
 
-Compiling using the IDE files for Borland C++ 5.0: not supported - please
-use version 2.4.1 (using the make utility in commandline mode works fine_
+Cmpilation succeeds with CBuilderX personal edition and CBuilder6, but 
+you may have to copy make.exe from the 5.5 download to the new bin directory.
+Compiling using the IDE files for Borland C++ 5.0 and using CBuilder IDE 
+(v1-v6): not supported 
 
-Compiling using CBuilder (v1-v6): not supported - please
-use version 2.4.1 (using the make utility in commandline mode works fine_
 
 ** REMEMBER **
 
@@ -230,13 +318,13 @@ the following preprocessor directive:
 more details)
 
 Borland 16 Bit compilation for Windows 3.1
-------------------------------------------
+----------------------------------------------------------------
 
 The last version of wxWidgets to support 16-bit compilation with Borland was
 2.2.7 - Please download and read the instructions in that release
 
 Watcom C++ 10.6/11 and OpenWatcom compilation
----------------------------------------------
+----------------------------------------------------------------
 
 1. Change directory to build\msw. Type 'wmake -f makefile.wat' to
    make the wxWidgets core library.
@@ -259,11 +347,24 @@ Note (4): if Watcom can't read the precompiled header when building a sample,
           try deleting .pch files in build\msw\wat_* and compiling
           the sample again.
 
+Note (5): wxUSE_STD_STRING is disabled in wx/string.h for Watcom as this
+          compiler doesn't come with standard C++ library headers by default.
+          If you install STLPort or another STL implementation, you'll need to
+          edit wx/string.h and remove the check for Digital Mars in it (search
+          for __WATCOM__).
+
+
 Metrowerks CodeWarrior compilation
-----------------------------------
+----------------------------------------------------------------
 
-1. CodeWarrior Pro7 project files in XML format are already
-   included in wxMSW-2.5.4.zip and the setup version.
+** NOTE: We don't use Metrowerks compiler any more and so depend on
+**       your contributions to keep it up to date. It is possible that
+**       the project files mentioned below are out of date due to recently
+**       added files, please add them manually if you get linking errors.
+**       The authoritative list of files is in build/bakefiles/files.bkl
+
+1. CodeWarrior Pro 7 project files in XML format are already
+   included in wxMSW-2.8.0.zip and the setup version.
 
 2. Review the file include\wx\msw\setup.h (or include\wx\msw\setup0.h if
    you are working from the CVS version) to make sure the settings reflect
@@ -324,9 +425,9 @@ Metrowerks CodeWarrior compilation
 
 
 Cygwin/MinGW compilation
-------------------------
+----------------------------------------------------------------
 
-wxWidgets supports Cygwin (formerly GnuWin32) betas and
+wxWidgets supports Cygwin (formerly GnuWin32) betas and
 releases, and MinGW. Cygwin can be downloaded from:
 
     http://sources.redhat.com/cygwin/
@@ -353,21 +454,18 @@ If using MinGW, you can download the add-on MSYS package to
 provide Unix-like tools that you'll need to build wxWidgets using configure.
 
 Using makefiles directly
-------------------------
+----------------------------------------------------------------
 
 NOTE: The makefile.gcc makefiles are for compilation under MinGW using
-      native make and Windows command interpreter (command.com/cmd.exe), they
-      won't work in other environments (such as UNIX or Unix-like, e.g. MSYS;
-      you have to use configure instead)
+      Windows command interpreter (command.com/cmd.exe), they won't work in
+      other environments (such as UNIX or Unix-like, e.g. MSYS where you have
+      to use configure instead, see the section below)
 
 Here are the steps required using the provided makefiles:
 
 - If you are using gcc-2.95, edit build\msw\config.gcc and set the GCC_VERSION
   variable to "2.95".
 
-- If you are compiling with GCC 3.x using makefiles and with wxUSE_STL == 1
-  you need to manually add -DNO_GCC_PRAGMA to CXXFLAGS in config.gcc.
-
 - Use the makefile.gcc files for compiling wxWidgets and samples,
   e.g. to compile a debugging version of wxWidgets:
   > cd c:\wx\build\msw
@@ -385,7 +483,7 @@ All targets have 'clean' targets to allow removal of object files
 and other intermediate compiler files.
 
 Using configure
----------------
+----------------------------------------------------------------
 
 Instead of using the makefiles, you can use the configure
 system to generate appropriate makefiles, as used on Unix
@@ -401,7 +499,7 @@ For example:
   cd build-debug
   ../configure --with-msw --enable-debug --enable-debug_gdb --disable-shared
   make
-  make install % This step is optional, see note (8) below.
+  make install % This step is optional, see note (6) below.
   cd samples/minimal
   make
   ./minimal.exe
@@ -463,6 +561,10 @@ Notes:
    flagged when the program quits. You can use Cygwin gdb
    to debug MinGW executables.
 
+8. Note that gcc's precompiled headers do not work on current versions of
+   Cygwin. If your version of Cygwin is affected you will need to use the
+   --disable-precomp-headers configure option.
+
 OLD VERSIONS:
 
 - Modify the file wx/src/cygnus.bat (or mingw32.bat or mingegcs.bat)
@@ -479,7 +581,8 @@ OLD VERSIONS:
 
 
 Symantec & DigitalMars C++ compilation
---------------------------------------
+----------------------------------------------------------------
+
 The DigitalMars compiler is a free succssor to the Symantec compiler
 and can be downloaded from http://www.digitalmars.com/
    
@@ -504,10 +607,16 @@ using bakefile tool according to the instructions in build\bakefiles\README:
     bakefile_gen -f dmars -b ../../samples/minimal/minimal.bkl
 
 
+Note that wxUSE_STD_STRING is disabled in wx/string.h for Digital Mars as this
+compiler doesn't come with standard C++ library headers by default. If you
+install STLPort or another STL implementation, you'll need to edit wx/string.h
+and remove the check for Digital Mars in it (search for __DMC__).
+
+
 16-bit compilation is no longer supported.
 
 Configuring the build
-=====================
+================================================================
 
 So far the instructions only explained how to build release DLLs of wxWidgets
 and did not cover any configuration. It is possible to change many aspects of
@@ -517,7 +626,7 @@ and the only difference between them is in object files and library directory
 names and in make invocation command.
 
 Changing the settings
----------------------
+----------------------------------------------------------------
 
 There are two ways to modify the settings: either by passing the values as
 arguments when invoking make or by editing build\msw\config.$(compiler) file
@@ -546,16 +655,21 @@ Watcom C/C++:
 MinGW using native makefiles:
   > mingw32-make -f makefile.gcc BUILD=debug UNICODE=1
 
-MinGW using configure or Cygwin:
+MinGW using configure:
   > ./configure --enable-debug --enable-unicode
   (see ./configure --help on details; configure is not covered in this
   section)
 
+Cygwin using configure:
+  > ./configure --disable-precomp-headers --enable-debug --enable-unicode
+  (use --disable-precomp-headers if Cygwin doesn't support precompiled
+  headers)
+
 Brief explanation of options and possible values is in every
 build\msw\config.* file; more detailed description follows.
 
 Basic options
--------------
+----------------------------------------------------------------
 
 BUILD=release
   Builds release version of the library. It differs from default 'debug' 
@@ -580,7 +694,7 @@ WXUNIV=1
   http://www.wxwidgets.org/wxuniv.htm for more information).
 
 Advanced options
-----------------
+----------------------------------------------------------------
 
 MONOLITHIC=1
   Starting with version 2.5.1, wxWidgets has the ability to be built as 
@@ -658,7 +772,7 @@ CFG=<configuration name>
   directories" below for more information.
 
 Compiler specific options
--------------------------
+----------------------------------------------------------------
 
 * MinGW
 
@@ -680,7 +794,7 @@ DEBUG_RUNTIME_LIBS=1
   setting makes it possible.
 
 Fine-tuning the compiler
-------------------------
+----------------------------------------------------------------
 
 All makefiles have variables that you can use to specify additional options
 passed to the compiler or linker. You won't need this in most cases, but if you
@@ -688,7 +802,7 @@ do, simply add desired flags to CFLAGS (for C compiler), CXXFLAGS (for C++
 compiler), CPPFLAGS (for both C and C++ compiler) and LDFLAGS (the linker).
 
 Object and library directories
-------------------------------
+----------------------------------------------------------------
 
 All object files produced during library build are stored in a directory under
 build\msw. It's name is derived from build settings and CFG variable and from
@@ -738,7 +852,7 @@ 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.