
Dev-C++ Setup Guide
Please notice that the tutorial below is quite old and
that while it is quite possible to use wxWidgets with both Dev-C++ versions 4
and 5 by following these instructions, it might interest the reader to know
that there now exists an enhanced version of Dev-C++ including wxWidgets
support called
wxDev-C++.
This is an actively supported, more updated release of Dev-C++ version 5,
having an integrated form designer, with wxWidgets libraries, program
templates and examples already present within the distribution.
by Julian Smart, September 2002
Updated April 2003
DevPak Setup with Dev-C++ 5 |
VC++ Project File Import with Dev-C++ 5 |
Manual Setup Using Dev-C++ 4 |
Further Information
Dev-C++ is a free
Windows IDE (Integrated Development Environment) which brings you, for free,
some of the convenience of editing, compiling and debugging applications that many IDE users
are used to with commercial products.
This page helps you set up Dev-C++ for wxWidgets. There are instructions
for using version 4 (manual setup) and version 5 (DevPak setup).
DevPak Setup using Dev-C++ 5
Thanks to Karl Penzhorn for this information.
- Download Dev-C++ (at least 4.9.8, which is a version 5 beta) from
here.
- Download the wxWidgets 2.4.0 and imagelib DevPaks from
here.
- Install Dev-C++ (self installing .exe).
- Install imagelib FIRST, just by double clicking on the downloaded
DevPak.
- Now the same for the wxWidgets DevPak.
- There's one mistake in the templates, easy to fix. Note: this has now
been fixed in the latest DevPak for wxWidgets (2003-05-16).
- Open dev-cpp\Templates\WxWindows.template in a text editor (notepad)
and go to the [Project] section.
- Copy the line Compiler=--pipe -D...etc and paste just below.
- Change pasted line to CppCompiler=--pipe -D.... etc and save the
file.
- Now, load up Dev-C++. File->New->Project GUI->wxWidgets. Save
in a directory. Compile. Should work perfectly.
VC++ Project File Import with Dev-C++ 5
Another method is to just import the VC++ project file (.dsp) from the
wxWidgets src directory, add appropriate include and resource directories in
the converted .dev project, copy and change setup.h, then press F9.
Manual Setup Using Dev-C++ 4
What can I do with Dev-C++ 4? |
Installing the Tools |
Creating a Project
Compiling, Running and Debugging Your Program
These instructions refer to the stable Dev-C++ 4, and wxWidgets 2.3.3.
If you are using wxWidgets 2.2.x, you will need to adjust some of the flags,
for example adding -lxpm and renaming -lwxmswd to -lwx.
Also, if you use the wxWidgets DevPak, you can discount these instructions:
instead, all you have to do is open the Check For Packages/Updates under 'Tools' and download
the wxWidgets DevPak. It auto-installs. Then you simply say New/Project/GUI/wxWidgets
and you've got a basic wxWidgets app that compiles. (Note: sometimes it doesn't compile straight away
because the DevPak forgets to put the command line options for the compiler under 'C++ compiler',
only 'Compiler'. just simply go into the compiler options and copy, paste.)
What can I do with Dev-C++?
Dev-C++ is basically a GUI wrapper around the
MinGW C++ compiler. MinGW is
itself a cut-down version of the
Cygwin compiler,
without the POSIX compatibility layer.
Dev-C++ allows you to create projects, edit source files, specify switches
to pass to the compiler and linker, and then compile and link your program
without having to drop down to the command line and type 'make' as you would
otherwise do with MinGW.
What about debugging? Well, Dev-C++ does come with a console-based version
of gdb, which most users would find pretty lame. Instead, you can download
Insight, which is a slightly clunky user interface built on top of gdb. But
it's better than nothing, and becoming familiar with a debugger is essential
if you're serious about writing interesting C++ applications.
Installing the Tools
- Download Dev-C++ 4 from here.
- Download Insight
and unzip it into your Dev-C++ directory.
- There is a bug in the MinGW header files distributed with Dev-C++ 4,
which affects wxWidgets. Without the fix you will get a link error
referring to the symbol EnumDAdvise__11IDataObjectPP13IEnumSTATDATA@8.
Edit the file include/objidl.h at line 663 and add a missing
PURE keyword. Change it from:
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
to:
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**) PURE;
- Download wxDevCPPTemplate.zip
and unzip into the Dev-C++ Templates directory.
- Download and install wxWidgets for Windows, from the
downloads page.
- Download and install extra.zip,
a small collection of Unix-like utilities that you need when compiling
wxWidgets. Unzip this to a directory such c:\apps\extra. A
bin directory will be created under this.
- Set your HOME environment variable to a directory you can call home, for
example c:\home. You can set the environment variable from the Control
Panel/System applet in recent versions of Windows. Make a new file
called c:\home\gdb.ini with contents similar to the following:
dir /cygdrive/c/wx2/include/wx:/cygdrive/c/wx2/include/wx/msw:/cygdrive/c/wx2/include/wx/generic:/cygdrive/c/wx2/src/common:/cygdrive/c/wx2/src/msw:/cygdrive/c/wx2/src/generic
This tells gdb (and in particular Insight) where to find source
files. Change the directory according to where wxWidgets is on your
system. The notation /cygdrive/c is equivalent to c: (gdb needs it to
be this way).
- To compile wxWidgets for Dev-C++/MinGW, edit src/makeg95.env in
your wxWidgets distribution, setting MINGW32 to 1 and
MINGW32VERSION to 2.95. Edit your PATH to include the Dev-C++
bin directory and also the extras bin directory (to pick up 'rm', 'make'
and so on), set WXWIN, and then build wxWidgets. For example:
set PATH=c:\apps\Dev-C++\bin;c:\apps\extras\bin;%PATH%
set WXWIN=c:\wx2
cd c:\wx2\src\msw
make -f makefile.g95 all
This will build a debugging version of wxWidgets. Please note that
you can't currently use the 'configure' method of compilation since
there is a conflict between the version of MinGW distributed with
Dev-C++, and the MSYS package that you need to install to run configure
(you get a cygwin1.dll error). Perhaps someone can work around that
limitation.
If you wish to use MSYS instead of extras.zip, please add the line
OSTYPE=msys to makeg95.env, and in src/msw/makefile.g95 replace the
line:
$(COPY) $(WXDIR)/include/wx/msw/setup.h $@
with:
$(COPY) $(WXDIR)/include/wx/msw/setup.h $(subst $(BACKSLASH),/,$@)
before building, to ensure that the setup.h gets copied to the
correct location. Note that you should still invoke makefile.g95 from
DOS and not from MSYS's shell, because of the Cygwin DLL conflict.
Creating a Project in Dev-C++
Let's assume wxWidgets is in c:\wx2 (substitute your own install path in the
instructions below as appropriate).
Click on File|New Project..., click on the GUI Toolkits tab,
and then select wxWidgets. Click OK.
You are presented with a file dialog: create a new directory for your
project with the Create New Folder tool, type the folder name such as
myproject, navigate into the folder and save the project as e.g.
myproject.
Bring up the Project Options dialog (Project menu, Project
options command). Some of these options will have been filled in already
by the template, but some won't. If they have been filled in, check that the
directories are correct for you.
- Add these options to the Further object files or linker options
field:
-lwxmswd -lcomdlg32 -luser32 -lgdi32 -lole32 -lwsock32 -lcomctl32 -lctl3d32 -lgcc -lstdc++ -lshell32 -loleaut32 -ladvapi32 -luuid -Lc:\wx2\lib
- Add these options to the Extra compiler options field:
-fno-rtti -fno-exceptions -fno-pcc-struct-return -fstrict-aliasing -Wall -fvtable-thunks -D__WXMSW__ -D__GNUWIN32__ -DWINVER=0x400 -D__WIN95__ -DSTRICT -D__WXDEBUG__
- Add these options to the Extra include directories field:
c:\wx2\include;c:\wx2\lib\mswd
- Check these two options in the Project type box: Compile C++
project, Do not create a console.
- Click on OK.
Now click on Options|Compiler options... to bring up the Compiler
Options dialog.
- Click on the Linker tab and check Generate debugging
information and Compile for Win32 (no console).
- Click on OK.
Compiling, Running and Debugging Your Program
Hit the Compile Project button to compile your program, and click on
Continue when it has finished. With luck, all should be well and there
should be no compile or linker errors. If there are linker errors, there is
probably a typo in your paths - go back and check the preceding steps.
Now hit the Run Project button. A window should appear.
To debug your program, stop running it in Dev-C++ and click on the Debug
Project button. If you installed Insight correctly, the Insight window
will come up as per the picture on the right, showing a rather arbitrary
source file. Select the source file you're interested in from the combobox at
the bottom left of the main window, and click on the left of the line you wish
execution to stop at: say, Show(TRUE) in MainApp::OnInit.
Click on the Run icon, and the program should run until your
breakpoint. You can now use the Step, Next, Finish, Continue etc. to step
through your program. Bring up the local variables or watch windows to look at
data in your program.
The gdb Console is useful for adding extra source directories, for example,
and other commands you wish to feed to gdb directly. Dev-C++ comes with a gdb
help file that you may wish to peruse. Insight's online help is pretty
horrible to view.
Further information