Updated version of README.win32 by Ian (STR #1683)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5840 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
dba81e6fca
commit
65e4576d40
162
README.win32
162
README.win32
@ -1,5 +1,6 @@
|
|||||||
README.win32 - 10/03/2002 - Building FLTK under Windows
|
README.win32 - Building FLTK under Windows
|
||||||
-------------------------------------------------------
|
------------------------------------------
|
||||||
|
Last Update: May 2007 for release 1.1.8
|
||||||
|
|
||||||
INTRODUCTION
|
INTRODUCTION
|
||||||
|
|
||||||
@ -12,18 +13,26 @@ INTRODUCTION
|
|||||||
FLTK currently supports the following development
|
FLTK currently supports the following development
|
||||||
environments on the Windows platform:
|
environments on the Windows platform:
|
||||||
|
|
||||||
- Microsoft Visual C++ 6.0 using the supplied workspace
|
- Microsoft Visual C++ 6.0, VC2005 and VC.NET using the
|
||||||
and project files. Be sure to get your service packs!
|
supplied workspace and project files. Be sure to get
|
||||||
|
your service packs!
|
||||||
|
|
||||||
- Borland C++ Builder 5 using the supplied IDE file.
|
- Borland C++ Builder 5 and 6 using the supplied IDE
|
||||||
|
files. These files are not as actively maintained as
|
||||||
|
the VC and GNU versions, so may not work for you.
|
||||||
|
|
||||||
|
- Watcom. There is a partial solution for the Watcom
|
||||||
|
toolchain. It is no longer actively maintained.
|
||||||
|
|
||||||
- GNU toolsets (Cygwin or MinGW) hosted on Windows
|
- GNU toolsets (Cygwin or MinGW) hosted on Windows
|
||||||
9x/2000/NT/XP.
|
9x/2000/NT/XP.
|
||||||
|
|
||||||
This document gives a brief overview of compiling and using
|
This remainder of this document gives a brief overview of
|
||||||
FLTK with the Cygwin and MinGW compiler toolkits. Both
|
compiling and using FLTK with the Cygwin and MinGW compiler
|
||||||
toolkits provide a build environment based around the GNU
|
toolkits. Both toolkits provide a build environment based
|
||||||
C/C++ compiler.
|
around the GNU C/C++ compiler. Further information is
|
||||||
|
available from the FLTK website at http://www.fltk.org, such
|
||||||
|
as this Howto note: http://www.fltk.org/articles.php?L598
|
||||||
|
|
||||||
The Cygwin build environment supplies a library (the Cygwin
|
The Cygwin build environment supplies a library (the Cygwin
|
||||||
DLL) that is primarily intended to provide a number of
|
DLL) that is primarily intended to provide a number of
|
||||||
@ -33,7 +42,7 @@ INTRODUCTION
|
|||||||
the "BASH" Bourne-compatible shell and all of the standard
|
the "BASH" Bourne-compatible shell and all of the standard
|
||||||
Unix file utilities (ls, cat, grep, etc.).
|
Unix file utilities (ls, cat, grep, etc.).
|
||||||
|
|
||||||
Cygwin is developed by Cygnus (now part of RedHat, Inc).
|
Cygwin is developed by Cygnus (now part of RedHat, Inc).
|
||||||
Although provided for free download under the GPL,
|
Although provided for free download under the GPL,
|
||||||
distributing programs that require the Cygwin DLL under a
|
distributing programs that require the Cygwin DLL under a
|
||||||
license other than the GPL requires a commercial license for
|
license other than the GPL requires a commercial license for
|
||||||
@ -43,21 +52,23 @@ INTRODUCTION
|
|||||||
|
|
||||||
The MinGW distribution (Minimalist GNU for Windows) provides
|
The MinGW distribution (Minimalist GNU for Windows) provides
|
||||||
a similar toolset but geared solely towards native Windows
|
a similar toolset but geared solely towards native Windows
|
||||||
development without the Unix-like POSIX library. The lack
|
development without the Unix-like POSIX library. The lack of
|
||||||
of any libraries under the GPL or any other restrictive
|
any libraries under the GPL or any other restrictive license
|
||||||
license means that programs built with the MinGW environment
|
means that programs built with the MinGW environment may
|
||||||
may always be released under any license freely.
|
always be released under any license freely. MinGW also
|
||||||
|
supplies a Unix-like build environment for Windows,
|
||||||
|
including MSYS (a Bourne-compatible shell) and the standard
|
||||||
|
Unix file utilities (ls, cat, grep, etc.)
|
||||||
|
|
||||||
If you are not familiar with these GNU-like toolkits please
|
If you are not familiar with these GNU-like toolkits please
|
||||||
refer to the links section later in this section. In
|
refer to the links section later in this note. In particular,
|
||||||
particular, check out their license conditions carefully
|
check out their license conditions carefully before use.
|
||||||
before use.
|
|
||||||
|
|
||||||
|
|
||||||
THE TOOLS
|
THE TOOLS
|
||||||
|
|
||||||
There are currently three main configurations supported by
|
There are currently three main configurations supported by
|
||||||
FLTK:
|
FLTK with the GNU tools:
|
||||||
|
|
||||||
1. Cygwin: Built using the Cygwin toolset and using the
|
1. Cygwin: Built using the Cygwin toolset and using the
|
||||||
Unix-like POSIX compatibility layer provided by the
|
Unix-like POSIX compatibility layer provided by the
|
||||||
@ -66,46 +77,35 @@ THE TOOLS
|
|||||||
2. Cygwin using the "-mno-cygwin" option: Built using
|
2. Cygwin using the "-mno-cygwin" option: Built using
|
||||||
the Cygwin toolset but not using the Cygwin DLL.
|
the Cygwin toolset but not using the Cygwin DLL.
|
||||||
|
|
||||||
3. MinGW: Mainly based upon the MinGW utilities,
|
3. MinGW: Built using the MinGW utilities, compiler and
|
||||||
compiler and tools but currently needs additional
|
tools. This is, in many aspects, analogous to the
|
||||||
tools from the Cygwin distribution (make.exe and
|
Cygwin "-mno-cygwin" option.
|
||||||
sh.exe).
|
|
||||||
|
|
||||||
|
|
||||||
RECOMMENDED BUILD ENVIRONMENTS
|
RECOMMENDED BUILD ENVIRONMENTS
|
||||||
|
|
||||||
Our recommendation is to:
|
Our recommendation is to:
|
||||||
|
|
||||||
1. Get the current Cygwin toolset (June 20, 2000 or
|
1. Get the current Cygwin toolset.
|
||||||
later).
|
|
||||||
|
|
||||||
Can produce executables that do or do not rely on the
|
This can either produce executables that do or do not
|
||||||
Cygwin DLL (check licensing)-- your choice. No
|
rely on the Cygwin DLL (check licensing) at your
|
||||||
supplementary MinGW files are required.
|
choice.
|
||||||
|
|
||||||
2. Get the latest full MinGW toolset and add Cygwin
|
2. Get the latest MinGW toolset. It is recommended that
|
||||||
"make.exe" and "sh.exe" to it.
|
you also get the MSYS shell and the msysDTK developer
|
||||||
|
toolset.
|
||||||
|
|
||||||
Will only normal Windows native executables without
|
This will only produce normal Windows native
|
||||||
any Unix or POSIX compatibility.
|
executables without any Unix or POSIX compatibility
|
||||||
|
layer.
|
||||||
|
|
||||||
3. Get a pre-built combined toolset that has been tested
|
|
||||||
with FLTK.
|
|
||||||
|
|
||||||
Carl Thompson has provided a set based upon the B20.1
|
|
||||||
Cygwin release and ~Feb 2000 version of Mingw which
|
|
||||||
has been successfully used for FLTK.
|
|
||||||
|
|
||||||
This will provide several Cygwin utilities and the
|
|
||||||
MinGW compiler. Compilation will produce executables
|
|
||||||
not reliant on the Cygwin DLL and so are freely
|
|
||||||
redistributable under any license you choose.
|
|
||||||
|
|
||||||
See the links section below for more information.
|
See the links section below for more information.
|
||||||
|
|
||||||
All three options can provide windows-native executables and
|
Either option can generate windows-native executables and
|
||||||
1 can provide a Unix-like POSIX portability layer that is
|
option 1 can provide a Unix-like POSIX portability layer that
|
||||||
reliant on a GPLed library.
|
is reliant on a GPLed library.
|
||||||
|
|
||||||
See the later sections for detailed information about using
|
See the later sections for detailed information about using
|
||||||
one of these configurations.
|
one of these configurations.
|
||||||
@ -116,7 +116,7 @@ LINKS
|
|||||||
|
|
||||||
1. Main Cygwin homepage:
|
1. Main Cygwin homepage:
|
||||||
|
|
||||||
http://sourceware.cygnus.com/cygwin/
|
http://www.cygwin.com/
|
||||||
|
|
||||||
2. Main Mingw homepage:
|
2. Main Mingw homepage:
|
||||||
|
|
||||||
@ -126,23 +126,8 @@ LINKS
|
|||||||
a lot of useful Mingw-native development
|
a lot of useful Mingw-native development
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
3. Mumit Khan's homepage (chief maintainer and driving
|
|
||||||
force behing MinGW):
|
|
||||||
|
|
||||||
http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html
|
3. Check out the FLTK newsgroups at the FLTK homepage:
|
||||||
|
|
||||||
This page provides descriptions of Cygwin, Mingw and
|
|
||||||
several other similar packages. This information can
|
|
||||||
sometimes lag the current release however.
|
|
||||||
|
|
||||||
In particular the insights and recommendations for
|
|
||||||
using Cygwin for MinGW compilation are very useful:
|
|
||||||
|
|
||||||
http://www.xraylith.wisc.edu/~khan/software/gnu-win32/mno-cygwin-howto.txt
|
|
||||||
|
|
||||||
(Some of this information may be outdated and inaccurate!)
|
|
||||||
|
|
||||||
4. Check out the FLTK newsgroups at the FLTK homepage:
|
|
||||||
|
|
||||||
http://www.fltk.org/
|
http://www.fltk.org/
|
||||||
|
|
||||||
@ -150,24 +135,28 @@ LINKS
|
|||||||
to check back through previous problems with this
|
to check back through previous problems with this
|
||||||
sort of configuration before posting new questions.
|
sort of configuration before posting new questions.
|
||||||
|
|
||||||
5. Carl Thompson (member of the core team responsible
|
4. Carl Thompson (member of the core team responsible
|
||||||
for FLTK):
|
for FLTK):
|
||||||
|
|
||||||
http://www.carlthompson.net/
|
http://www.carlthompson.net/
|
||||||
|
|
||||||
Currently a pre-bundled development toolset may be
|
A pre-bundled development toolset tailored for use
|
||||||
found at:
|
with an earlier version of FLTK may be found at:
|
||||||
|
|
||||||
http://www.carlthompson.net/cygwin/
|
http://www.carlthompson.net/cygwin/
|
||||||
|
|
||||||
6. GNU Compiler Collection (GCC) compiler homepage:
|
However, this has not been actively maintained since
|
||||||
|
the Cygwin and MinGW offerings are now more complete
|
||||||
|
these days.
|
||||||
|
|
||||||
|
5. GNU Compiler Collection (GCC) compiler homepage:
|
||||||
|
|
||||||
http://gcc.gnu.org/
|
http://gcc.gnu.org/
|
||||||
|
|
||||||
7. OpenGL page - for OpenGL and GLUT libs
|
6. OpenGL page - for OpenGL and GLUT libs
|
||||||
|
|
||||||
http://www.opengl.org/
|
http://www.opengl.org/
|
||||||
|
|
||||||
|
|
||||||
BUILDING FLTK WITH CYGWIN OR MINGW
|
BUILDING FLTK WITH CYGWIN OR MINGW
|
||||||
|
|
||||||
@ -186,51 +175,32 @@ WHY DOES A CONSOLE WINDOW APPEAR WHEN I RUN MY PROGRAM
|
|||||||
Keep in mind that a windows application cannot send output
|
Keep in mind that a windows application cannot send output
|
||||||
to stdout, even if you run it from an existing console
|
to stdout, even if you run it from an existing console
|
||||||
application.
|
application.
|
||||||
|
(Note: A special case of this exists if running a MinGW
|
||||||
|
application from the command line of an MSYS shell, when an
|
||||||
|
application is able to write to stdout, even if compiled with
|
||||||
|
"-mwindows".)
|
||||||
|
|
||||||
|
|
||||||
HOW DO I GET OPENGL TO WORK?
|
HOW DO I GET OPENGL TO WORK?
|
||||||
|
|
||||||
The CygWin build automatically supports OpenGL.
|
Both builds should automatically support OpenGL.
|
||||||
|
|
||||||
The MingW build disables OpenGL by default, since the
|
|
||||||
standard MingW distribution lacks the OpenGL header files.
|
|
||||||
|
|
||||||
The configuration file config.h has a number of settings
|
The configuration file config.h has a number of settings
|
||||||
which control compile-time compilation. One such setting is
|
which control compile-time compilation. One such setting is
|
||||||
"HAVE_GL" . By default this is set to 0 to disable Open GL
|
"HAVE_GL". This may be set to 0 to disable Open GL operation.
|
||||||
operation. Changing the line in config.h to
|
Changing the line in config.h to
|
||||||
|
|
||||||
#define HAVE_GL 1
|
#define HAVE_GL 1
|
||||||
|
|
||||||
will change this to compile and link in OpenGL.
|
will change this to compile and link in OpenGL.
|
||||||
|
|
||||||
In order for it to work you will need a few OpenGL headers
|
|
||||||
for both Cygwin and MinGW. These are not part of the
|
|
||||||
official distributions of Cygwin or MinGW, so they need to
|
|
||||||
be added. The following page provides a ZIP file containing
|
|
||||||
the OpenGL headers:
|
|
||||||
|
|
||||||
http://www.carlthompson.net/fltk/
|
|
||||||
|
|
||||||
These should be put in a "GL" subdirectory somewhere in your
|
|
||||||
compiler's search path.
|
|
||||||
|
|
||||||
You will also need an OpenGL library and an additional set
|
|
||||||
of GLUT libraries.
|
|
||||||
|
|
||||||
The OpenGL files are most likely already part of your
|
|
||||||
operating system, and the GLUT libraries are in current
|
|
||||||
versions of MinGW and Cygwin or may be found at:
|
|
||||||
|
|
||||||
http://www.opengl.org/
|
|
||||||
|
|
||||||
Do a search for 'GLUT windows' and the first couple of
|
|
||||||
results will take you to the latest GLUT and OpenGL libs for
|
|
||||||
Windows.
|
|
||||||
|
|
||||||
The binaries (DLLs normally) need to be put somewhere on the
|
|
||||||
system PATH. Consult the install documentation on the site
|
|
||||||
for info.
|
|
||||||
|
|
||||||
Many programs use OpenGL and GLUT so you may already have
|
|
||||||
them on your system.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user