Difference between revisions of "Compiling wxWidgets 2.8.6 to develop Code::Blocks (MSW)"
(40 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Obsolete directions please see [[Compiling wxWidgets (MSW) 2.8.12 on Windows using makefile.gcc]] | |
− | |||
− | |||
− | |||
These are the instructions for compiling wxWidgets for use with Code::Blocks. They are primarily intended in preparation for compiling Code::Blocks itself but (hopefully) may also help installing wxWidgets for general development using that framework. | These are the instructions for compiling wxWidgets for use with Code::Blocks. They are primarily intended in preparation for compiling Code::Blocks itself but (hopefully) may also help installing wxWidgets for general development using that framework. | ||
Line 12: | Line 9: | ||
[[MinGW installation]] | [[MinGW installation]] | ||
− | == Installing the wxWidgets | + | == Installing the wxWidgets Source Code == |
− | The wxWidgets 2.6 | + | The wxWidgets 2.8.6 distribution can be found at the [http://www.wxwidgets.org/downloads/#previous_stable wxWidgets download site]. (Note that there is also a winhelp file available.) You can choose between an installer and a zip file. You can just get the zip file because the installer is also a zipped version. |
If you use the plain zip version, make sure to unzip using the full path. Otherwise the directories won't be created correctly. | If you use the plain zip version, make sure to unzip using the full path. Otherwise the directories won't be created correctly. | ||
− | '''NOTE:''' For the remainder of these instructions we call the wxWidgets directory ''<WXWIN>''. You have to change it to your corresponding directory (e.g. "c:\wxWidgets-2.6 | + | The future patches for wxWidgets 2.8.6 distribution will be found at the |
+ | [http://www.wxwidgets.org/downloads/patch.htm wxWidgets download site]. | ||
+ | |||
+ | '''NOTE:''' For the remainder of these instructions we call the wxWidgets directory ''<WXWIN>''. You have to change it to your corresponding directory (e.g. "c:\wxMSW-2.8.6-1\wxWidgets-2.8.6"). | ||
'''NOTE:''' You do not need MSYS. Furthermore, you cannot have MSYS in your path, or the wxWidgets compilation will fail. Thus, if you have MSYS installed, ensure that ''<MSYS>\bin'' '''is not''' in your path before compiling wxWidgets. wxWidgets must be compiled from a "regular" command line (like cmd.exe), not from a Unix-like shell. The same problem could arise if Cygwin is in the path. | '''NOTE:''' You do not need MSYS. Furthermore, you cannot have MSYS in your path, or the wxWidgets compilation will fail. Thus, if you have MSYS installed, ensure that ''<MSYS>\bin'' '''is not''' in your path before compiling wxWidgets. wxWidgets must be compiled from a "regular" command line (like cmd.exe), not from a Unix-like shell. The same problem could arise if Cygwin is in the path. | ||
− | == Checking make | + | '''NOTE:''' For the remainder of these instructions we call the MinGW directory ''<MINGW>''. You have to change it to your corresponding directory (e.g. "C:\MinGW"). |
+ | |||
+ | == Checking make Version == | ||
If you didn't install MinGW yourself you have to ensure you are using a recent enough version of the make utility. Open a command prompt and type: | If you didn't install MinGW yourself you have to ensure you are using a recent enough version of the make utility. Open a command prompt and type: | ||
− | <tt>mingw32-make -v</tt> | + | <tt>cd /D <MINGW>\bin |
− | The version should read 3.80 or | + | mingw32-make -v</tt> |
+ | The version should read 3.80 or higher. | ||
+ | |||
+ | '''NOTE:''' the <code>/D</code> flag after <code>cd</code> may be omitted from all commands; it simply allows command prompt to change drives if necessary. | ||
== Building wxWidgets == | == Building wxWidgets == | ||
− | + | To compile wxWidgets, open the command prompt window and change to the wxWidgets directory: | |
− | <tt>cd <WXWIN>\build\msw</tt> | + | <tt>cd /D <WXWIN>\build\msw</tt> |
− | '''NOTE: | + | <tt>SET PATH=<MINGW>\bin;<MINGW>\mingw32\bin</tt> |
+ | '''NOTE:''' This is normally SET PATH=C:\MingGW\bin;C:\MingGW\mingw32\bin | ||
− | Now | + | Now clean up the source: |
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean | mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean | ||
− | '''NOTE:''' Make sure you use exactly the same options for this step and for the build step below. The clean target uses these variables and only cleans the specified version of the generated object and library files ( | + | '''NOTE:''' Make sure you use exactly the same options for this step and for the build step below. The clean target uses these variables and only cleans the specified version of the generated object and library files. (It will not clean the intended files if these variables are not identical.) |
'''NOTE:''' If you still have problems with compiling after cleaning, you could try to manually remove the gcc_msw directory under the build\msw directory. This directory is the place where the object files are stored. | '''NOTE:''' If you still have problems with compiling after cleaning, you could try to manually remove the gcc_msw directory under the build\msw directory. This directory is the place where the object files are stored. | ||
− | When everything is clean you can start | + | When everything is clean you can start compiling wxWidgets: |
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release | mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release | ||
− | '''NOTE:''' These options are the officially supported Code::Blocks options. If you want another version of wxWidgets (debug or non- | + | '''NOTE:''' These options are the officially-supported Code::Blocks options. If you want another version of wxWidgets (debug or non-Unicode) you still have to make sure you build a MONOLITHIC version (one big DLL) for linking Code::Blocks. |
− | + | Patience. This step takes time. Make sure there was no compilation error before you continue. | |
'''NOTE:''' If you're having errors because of libjpeg, you might want to look at [http://sourceforge.net/tracker/?func=detail&atid=309863&aid=1606032&group_id=9863 this patch] | '''NOTE:''' If you're having errors because of libjpeg, you might want to look at [http://sourceforge.net/tracker/?func=detail&atid=309863&aid=1606032&group_id=9863 this patch] | ||
Line 52: | Line 58: | ||
*Open the Code::Blocks project (CodeBlocks.cbp). | *Open the Code::Blocks project (CodeBlocks.cbp). | ||
*It will ask you to define a [[Global compiler variables|Global variable]] | *It will ask you to define a [[Global compiler variables|Global variable]] | ||
− | *Set the path to where you have wxWidgets installed (e.g. "c:\wxWidgets-2.6 | + | *Set the path to where you have wxWidgets installed (e.g. "c:\wxMSW-2.8.6-1\wxWidgets-2.8.6"). |
*Compile Code::Blocks. | *Compile Code::Blocks. | ||
=== Post compilation steps === | === Post compilation steps === | ||
When the compilation process is finished, simply run the update.bat script. It will ensure that all resource files Code::Blocks uses are in the right place and up to date. | When the compilation process is finished, simply run the update.bat script. It will ensure that all resource files Code::Blocks uses are in the right place and up to date. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 01:09, 14 December 2016
Obsolete directions please see Compiling wxWidgets (MSW) 2.8.12 on Windows using makefile.gcc
These are the instructions for compiling wxWidgets for use with Code::Blocks. They are primarily intended in preparation for compiling Code::Blocks itself but (hopefully) may also help installing wxWidgets for general development using that framework.
Although these instructions are targeted at the Windows operating system, it should be possible to apply them with slight adjustments to other platforms, since we make use of MinGW.
Installing MinGW
Directions to install MinGW for Code::Blocks can be found here. MinGW installation
Installing the wxWidgets Source Code
The wxWidgets 2.8.6 distribution can be found at the wxWidgets download site. (Note that there is also a winhelp file available.) You can choose between an installer and a zip file. You can just get the zip file because the installer is also a zipped version.
If you use the plain zip version, make sure to unzip using the full path. Otherwise the directories won't be created correctly.
The future patches for wxWidgets 2.8.6 distribution will be found at the wxWidgets download site.
NOTE: For the remainder of these instructions we call the wxWidgets directory <WXWIN>. You have to change it to your corresponding directory (e.g. "c:\wxMSW-2.8.6-1\wxWidgets-2.8.6").
NOTE: You do not need MSYS. Furthermore, you cannot have MSYS in your path, or the wxWidgets compilation will fail. Thus, if you have MSYS installed, ensure that <MSYS>\bin is not in your path before compiling wxWidgets. wxWidgets must be compiled from a "regular" command line (like cmd.exe), not from a Unix-like shell. The same problem could arise if Cygwin is in the path.
NOTE: For the remainder of these instructions we call the MinGW directory <MINGW>. You have to change it to your corresponding directory (e.g. "C:\MinGW").
Checking make Version
If you didn't install MinGW yourself you have to ensure you are using a recent enough version of the make utility. Open a command prompt and type:
cd /D <MINGW>\bin mingw32-make -v
The version should read 3.80 or higher.
NOTE: the /D
flag after cd
may be omitted from all commands; it simply allows command prompt to change drives if necessary.
Building wxWidgets
To compile wxWidgets, open the command prompt window and change to the wxWidgets directory:
cd /D <WXWIN>\build\msw
SET PATH=<MINGW>\bin;<MINGW>\mingw32\bin
NOTE: This is normally SET PATH=C:\MingGW\bin;C:\MingGW\mingw32\bin
Now clean up the source:
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
NOTE: Make sure you use exactly the same options for this step and for the build step below. The clean target uses these variables and only cleans the specified version of the generated object and library files. (It will not clean the intended files if these variables are not identical.)
NOTE: If you still have problems with compiling after cleaning, you could try to manually remove the gcc_msw directory under the build\msw directory. This directory is the place where the object files are stored.
When everything is clean you can start compiling wxWidgets:
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
NOTE: These options are the officially-supported Code::Blocks options. If you want another version of wxWidgets (debug or non-Unicode) you still have to make sure you build a MONOLITHIC version (one big DLL) for linking Code::Blocks.
Patience. This step takes time. Make sure there was no compilation error before you continue.
NOTE: If you're having errors because of libjpeg, you might want to look at this patch
Compiling Code::Blocks
Setting up paths
Before finally compiling Code::Blocks itself, you need to setup the paths:
- Open the Code::Blocks project (CodeBlocks.cbp).
- It will ask you to define a Global variable
- Set the path to where you have wxWidgets installed (e.g. "c:\wxMSW-2.8.6-1\wxWidgets-2.8.6").
- Compile Code::Blocks.
Post compilation steps
When the compilation process is finished, simply run the update.bat script. It will ensure that all resource files Code::Blocks uses are in the right place and up to date.