wxWidgets/docs/msw/binaries.md
Vadim Zeitlin 72565cf195 Document nmake arguments needed when using MSVC binaries
In particular, mention that COMPILER_PREFIX must be set.

Closes #18801.
2020-06-30 15:08:11 +02:00

3.2 KiB

How to use wxMSW binaries

[TOC]

Supported Compilers

We provide pre-built binary files for the following compilers:

  • Microsoft Visual C++ compiler versions 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 and 14.2 (corresponding to marketing product names of Microsoft Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 and 2019 respectively). Please note that MSVC 14.x versions are ABI-compatible and the same set of binaries is used for all of them.
  • MinGW-w64 version 7.3 and 8.1 (with the default SJLJ exceptions propagation method for 32-bit builds).

Getting the files

First, you need to get the correct files. You will always need the wxWidgets-3.1.3-headers.7z one but the rest depends on your compiler version and architecture: as different versions of MSVC compiler are not binary compatible, you should select the files with the correct vc80, vc90, vc100, vc110, vc120, or vc14x suffix depending on whether you use Visual Studio 2005, 2008, 2010, 2012, 2013, or 2015/2017/2019 respectively (the Visual Studio 2015/2017/2019 compilers are binary compatible). You also need to decide whether you use the x64 files for 64-bit development or the ones without this suffix for the still more common 32-bit builds. After determining the combination of suffixes you need, you should download the "Dev" and the "ReleaseDLL" files in addition to the "Headers" one above, e.g. for 32-bit MSVS 2017 development you need wxMSW-3.1.3_vc14x_Dev.7z and wxMSW-3.1.3_vc14x_ReleaseDLL.7z.

All binaries are available at:

https://www.wxwidgets.org/downloads#v3.1.3_msw

Once you have the files you need, unzip all of them into the same directory, for example c:\wx\3.1.3. You should have only include and lib subdirectories under it, nothing else. To avoid hard-coding this path into your projects, define wxwin environment variable containing it: although it's a little known fact, all versions of MSVC support environment variable expansion in the C++ projects (but not, unfortunately, in the solution files).

Using Binaries with Visual Studio

Next step is to set up your project to use these files: for this, simply add the provided wxwidgets.props file as a property sheet to your project. This can be done using View|Property Manager menu item in the IDE and selecting "Add Existing Property Sheet..." from the project popup menu.

Note: your project must use "Unicode Character Set" option.

Now you should be able to build and run your project successfully, both in "Debug" and "Release" configurations. Please note that during run-time the executables will require wxWidgets DLLs in addition to MSVC run-time DLLs, so you should consider adding the directory containing these DLLs to your PATH and either distributing them with your application or instructing your users to download them.

Building samples with nmake

When using makefile.vc files for building wxWidgets samples using nmake from command line, you need to use SHARED=1 and also define COMPILER_PREFIX appropriately, e.g. the full command line could be

> nmake /f makefile.vc BUILD=release SHARED=1 COMPILER_PREFIX=vc14x