diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2018-02-09 14:39:42 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2018-02-09 14:39:42 +0000 |
| commit | 52ae3582a2c7bb437df33c0a30bfd5a01d6c5282 (patch) | |
| tree | 4f532a97ab0a6a1c2f96454290bc8803ee022f1f /README.MSWindows.txt | |
| parent | 30dad6a4aa2b94fe91783160c86abc75f9dc9e23 (diff) | |
Replace "WIN32" with "_WIN32" or "Windows".
Replace compiler/preprocessor/platform macro "WIN32" with "_WIN32".
Replace "WIN32" in text and documentation with "Windows".
Replace "MSWindows" with "Windows".
To do: README.Windows.txt (and maybe other documentation as well)
needs updates.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12655 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'README.MSWindows.txt')
| -rw-r--r-- | README.MSWindows.txt | 652 |
1 files changed, 0 insertions, 652 deletions
diff --git a/README.MSWindows.txt b/README.MSWindows.txt deleted file mode 100644 index 9e67c09bd..000000000 --- a/README.MSWindows.txt +++ /dev/null @@ -1,652 +0,0 @@ - README.MSWindows.txt - Building FLTK under Microsoft Windows --------------------------------------------------------------- - - - - CONTENTS -========== - - 1 INTRODUCTION - 2 HOW TO BUILD FLTK USING MinGW/Cygwin - 2.1 The Tools - 2.2 Recommended Command Line Build Environment - 2.3 Prerequisites - 2.4 Downloading and Unpacking - 2.5 Configuring FLTK - 2.6 Building FLTK - 2.7 Testing FLTK - 2.8 Installing FLTK - 2.9 Creating new Projects - 3 HOW TO BUILD FLTK USING VISUAL STUDIO 2008 - 3.1 Prerequisites - 3.2 Downloading and Unpacking - 3.3 Configuring FLTK - 3.4 Building FLTK - 3.5 Testing FLTK - 3.6 Installing FLTK - 3.7 Creating new Projects - 4 HOW TO BUILD FLTK USING VISUAL STUDIO 2010 OR LATER - 4.1 Prerequisites - 4.2 Downloading and Unpacking - 4.3 Configuring FLTK - 4.4 Building FLTK - 4.5 Testing FLTK - 4.6 Installing FLTK - 4.7 Creating new Projects - 5 FREQUENTLY ASKED QUESTIONS - 7 LINKS - 6 DOCUMENT HISTORY - - - INTRODUCTION -============== - -FLTK 1.3 and later is officially supported on Windows (2000,) 2003, -XP, and later. Older Windows versions are not officially supported, -but may still work. The main reason is that the OS version needs -to support UTF-8. FLTK 1.3 is known to work on Windows Vista, Windows 7, -Windows 8/8.1, and Windows 10. - -FLTK currently supports the following development -environments on the Windows platform: - - - Free Microsoft "Visual C++ 2008 Express" or later or "Visual Studio - Community 2013" or later. The Visual Studio project files must be - generated using CMake. Visual Studio 2017 includes CMake support: - - "Visual Studio 2017 introduces built-in support for handling CMake - projects. This makes it a lot simpler to develop C++ projects built - with CMake without the need to generate VS projects and solutions - from the command line. This post gives you an overview of the CMake - support, how to easily get started and stay productive in Visual Studio." - - Citation from: - https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/ - - As of this writing (07/2017) the FLTK team did not yet test and - verify the functionality of Microsoft's included CMake features. - - - GNU toolsets (Cygwin or MinGW) hosted on Windows. - -CAUTION: Libraries built by any one of these environments can not be mixed -with object files from any other environment! - - - HOW TO BUILD FLTK USING MinGW and Cygwin -========================================== - -This chapter of this document gives a brief overview of -compiling and using FLTK with the Cygwin and MinGW compiler -toolkits. Both toolkits provide a build environment based -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 -DLL) that is primarily intended to provide a number of -Unix-like POSIX facilities for programs being ported to the -Windows environment (Win32 or WinNT). Cygwin also supplies -a very Unix-like build environment for Windows, including -the "BASH" Bourne-compatible shell and all of the standard -Unix file utilities (ls, cat, grep, etc.). - -Cygwin is developed by Cygnus (now part of RedHat, Inc). -Although provided for free download under the GPL, distributing -programs that require the Cygwin DLL under a license other than -the GPL requires a commercial license for the Cygwin DLL. - -Native Windows programs that do not require the Cygwin DLL -(cross-compiled and linked with the MinGW gcc/g++ cross compilers -supplied with Cygwin) may be released under any license freely. - -Currently you would have to install mingw64-i686-gcc-g++ for -32-bit Windows applications (despite its name!), and/or -mingw64-x86_64-gcc-g++ for 64-bit applications. You may also -need to install the corresponding '-headers' packages as well. -Currently these tools support gcc 4.5 or newer. The setup for -FLTK is somewhat more complicated because you must configure -this as a cross compiler, but it works well. - -The MinGW distribution (Minimalist GNU for Windows) provides -a similar toolset but geared solely towards native Windows -development without the Unix-like POSIX library. The lack of -any libraries under the GPL or any other restrictive license -means that programs built with the MinGW environment may -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 -refer to the links section later in this note. In particular, -check out their license conditions carefully before use. - - - The Tools ------------ - -There are currently three main configurations supported by -FLTK with the GNU tools: - - 1. Cygwin: Built using the Cygwin toolset and using the Unix-like - POSIX compatibility layer provided by the Cygwin DLL. - License: GPL or non-free commercial license (ask Redhat). - - 2. Cygwin using the MinGW cross compiler suite: Built using - the Cygwin tools but not using the Cygwin DLL. - License: freely distributable on all Windows systems. - - 3. MinGW: Built using the MinGW utilities, compiler and tools. This - is, in many aspects, analogous to (2.). This is the recommended - one if you want to build native Windows programs only. - License: freely distributable on all Windows systems. - - - Recommended Command Line Build Environment --------------------------------------------- - -Our recommendation is to: - - 1. Get the current Cygwin toolset. - - This can either produce executables that do or do not - rely on the Cygwin DLL (check licensing) at your choice. - - 2. Get the latest MinGW toolset. It is recommended that you - also get the MSYS shell and the msysDTK developer toolset. - - This will only produce normal Windows native executables - without any Unix or POSIX compatibility layer. - - See the links section below for more information. - -Either option can generate Windows native executables and option 1 can -provide a Unix-like POSIX portability layer that is reliant on a GPLed library. - -See the later sections for detailed information about using -one of these configurations. - - - Prerequisites ---------------- - -In order to build FLTK from the command line, you need to install the MinGW -environment from www.mingw.org. The graphical installer "mingw-get-inst" can -be downloaded here for free: - - http://www.mingw.org/wiki/Getting_Started - -Launch the installer and follow the instructions. In the "Select Components" -dialog, add "C++ Compiler", "MSYS Basic System", and "MinGW Developer Toolkit". -Wait for the installer to finish. - -After downloading and installing, you need to launch the MinGW Shell through -the Start menu. - - - Downloading and Unpacking ---------------------------- - -Download FLTK from here: - - http://www.fltk.org/software.php - -into your home folder. The default location as seen from MSWindows is similar -to - - C:\MinGW\msys\1.0\home\matt\ - -If you are familiar with "subversion" and like to stay current with your -version, you will find the subversion access parameters at the bottom of -that page. Unpack FLTK into a convenient location. I like to have everything -in my dev directory: - - cd - mkdir dev - cd dev - tar xvfz fltk-1.3.xxxx.tar.gz - cd fltk-1.3.xxxx - - - Configuring FLTK ------------------- - -If you got FLTK via subversion then you need one extra step. Otherwise skip -over this part. Stay in your FLTK source-code directory and type the -following: - - NOCONFIGURE=1 ./autogen.sh - -Now configure your FLTK installation: - - ./configure - -ADVANCED: type "./configure --help" to get a complete list of optional -configuration parameters. These should be pretty self-explanatory. Some -more details can be found in README. -:END_ADVANCED - -The configuration script will check your machine for the required resources -which should all have been part of your MinGW installation. Review the -Configuration Summary, maybe take some notes. - -ADVANCED: some versions of MinGW/Msys are broken and complain about a missing ---enable-auto-import. The solution is to upgrade to the current release. If -that is not possible, you can include the --enable-auto-import flag when -linking: - ./configure <config flags> LDFLAGS=-Wl,--enable-auto-import -:END_ADVANCED - - -Known Problems: - - There is a known incompatibility with some Windows subversion tools that - may not set the correct line endings for autoconf. If you get strange - error messages when running ./configure or make, you may need to convert - configh.in to "Unix line endings" (LF-only). These error messages are - unspecific, e.g. compilation errors like: - - error: 'U32' does not name a type - error: 'bmibuffer' was not declared in this scope - - You can fix the line endings with the MinGW/msys tool 'unix2dos' (u2d) - or with your favorite editor, if it allows to change the line endings, - then run autoconf and ./configure again. - For further information see this bug report: - http://www.fltk.org/newsgroups.php?gfltk.bugs+v:10197 - - - Building FLTK ---------------- - -Now this is easy. Stay in your FLTK source-code directory and type: - - make - -The entire FLTK toolkit including many test programs will be built for you. -No warnings should appear. - - - Testing FLTK --------------- - -After a successful build, you can test FLTK's capabilities: - - test/demo - - - Installing FLTK ------------------ - -If you did not change any of the configuration settings, FLTK will be -installed in "/usr/local/include" and "/usr/local/lib" by typing - - make install - -It is possible to install FLTK in user space by changing the installation path -to a location within the user account by adding the "--prefix=PREFIX" parameter -to the "./configure" command. - - - Creating new Projects ------------------------ - -FLTK provides a neat script named "fltk-config" that can provide all the flags -needed to build FLTK applications using the same flags that were used to build -the library itself. Running "fltk-config" without arguments will print a list -of options. The easiest call to compile an FLTK application from a single -source file is: - - fltk-config --compile myProgram.cxx - -"fltk-config" and "fluid" will be installed in "/usr/local/bin/" by default. -I recommend that you add it to the command search path. - - - - HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO -================================================ - - - Prerequisites ---------------- - -In order to build FLTK from within Visual Studio, you need to install the -Visual C++ developer environment from the Microsoft web site. The "Express" -or "Community" edition is free of charge and sufficient to develop FLTK -applications: - - https://www.visualstudio.com/vs/visual-studio-express/ - -If you intend to use an older (maybe commercial) version you need at least -a version that is supported by the version of CMake you are using to generate -the project files. You should make sure that all available service packs are -installed or building FLTK may fail. - -As of this writing (07/2017) the FLTK team recommends at least Visual -Studio 2008 with current service packs. Visual Studio 2008, 2010, 2013, -2015, and 2017 are known to work with FLTK 1.4.0 (svn, 07/2017). - -You also need to install CMake (cmake-gui) from: - - https://cmake.org/download/ - -Visual Studio 2017 has internal CMake support (so you may not need to -install CMake separately), but this has not yet been tested thoroughly -by the FLTK team. - - - Downloading and Unpacking FLTK --------------------------------- - -Download FLTK from here: - - http://www.fltk.org/software.php - -If you are familiar with "subversion" and like to stay current with your -version, you will find the subversion access parameters at the bottom of -that page. - -Unpack FLTK by using an appropriate unpacker and copy the new folder into a -convenient location. I have set up a "dev" folder in my home folder for all -my projects. - - - Configuring FLTK ------------------- - -Note: Configuration with Visual Studio 2017's internal CMake support is -not yet included here. You may try yourself... - -Please refer to README.CMake.txt for how to configure FLTK with CMake. - -Once you have followed the instructions you should have created a new -build directory with the Visual Studio Solution (project files) for FLTK. - -Launch Visual Studio and open the project file (FLTK.sln) or double-click -on FLTK.sln in the Windows Explorer. - -Choose "Debug" or "Release" mode from the "Solution Configurations" menu. - - - Building FLTK ---------------- - -Use the context menu of the "demo" project to "Set as StartUp Project". Then -select "Build Solution" from the "Build" menu or press F7 to build all -libraries. - - - Testing FLTK --------------- - -Select "Start Debugging" from the "Debug" menu or just press F5 to run the -Demo program. Use "Demo" to explore all test programs. - - - Installing FLTK ------------------ - -******************************************************************************** - The information in this chapter is NO LONGER RECOMMENDED by the FLTK team. -******************************************************************************** - -The default location for VisualC 2008 libraries and headers is here: - - C:\Program Files\Microsoft Visual Studio 9.0\VC\ - -It is possible to move the FLTK libraries, headers, and Fluid into the -respective subdirectories, so that they are available for future development -without adding link and include paths to the solution. - - copy the entire FL directory into the include path - - add all files from ide\VisualC2008\FL to the FL directory copied above - (this is currently only one file: abi-version.h) - - copy all .lib files from the fltk lib directory to the VC lib directory - - copy fluid.exe in the fluid directory to the bin directory - -I highly discourage using dll's (dynamically linking libraries) on MSWindows -because they will require an installation process and likely cause version -conflicts. Use the static .lib libraries instead. - - - Creating new Projects ------------------------ - -******************************************************************************** - The information in this chapter is NO LONGER RECOMMENDED by the FLTK team. -******************************************************************************** - -This chapter assumes that libraries and headers were copied into - - C:\Program Files\Microsoft Visual Studio 9.0\VC\ - -Create a new project of type "General", "Empty Project" and add a simple "C++" -file to it. The FLTK "hello" source code is a good base. - -Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK -libraries that you want to use (at least "fltk.lib") to Additional Dependencies -(Configuration Properties > Linker > Additional Dependencies). In the same -dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration -Properties > C/C++ > Preprocessor > Preprocessor Definitions). - -Compile and run your test program with F5. - -You can also include .fl resources: add a new Header file to your project, but -let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe" -from the "bin" directory and set it as the default editor. - -To automatically compile .fl files, open the Properties editor and set the -Custom Build Steps to: - - Command Line: fluid.exe -c $(InputPath) - Description: Compiling Fluid .fl file - Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h - -Now add the generated .cxx file to your project as well. Whenever the .fl file -is changed, the corresponding .cxx file will be recompiled. - - - - HOW TO BUILD FLTK USING VISUAL STUDIO 2010 OR LATER -==================================================== - - - Prerequisites ---------------- - -See previous chapter "HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO". - - - Downloading and Unpacking ---------------------------- - -See previous chapter "HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO". - - - Configuring FLTK ------------------- - -See previous chapter "HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO". - - - Building FLTK ---------------- - -See previous chapter "HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO". - - Testing FLTK --------------- - -See previous chapter "HOW TO BUILD FLTK USING MICROSOFT VISUAL STUDIO". - - - Installing FLTK ------------------ - -******************************************************************************** - The information in this chapter is NO LONGER RECOMMENDED by the FLTK team. -******************************************************************************** - -The default location for VisualC 2010 libraries and headers is here: - - C:\Program Files\Microsoft Visual Studio 10.0\VC\ - -It is possible to move the FLTK libraries, headers, and Fluid into the -respective subdirectories, so that they are available for future development -without adding link and include paths to the solution. - - copy the entire FL directory into the include path - - add all files from ide\VisualC2010\FL to the FL directory copied above - (this is currently only one file: abi-version.h) - - copy all .lib files from the fltk lib directory to the VC lib directory - - copy fluid.exe in the fluid directory to the bin directory - -I highly discourage using dll's (dynamically linking libraries) on MSWindows -because they will require an installation process and likely cause version -conflicts. Use the static .lib libraries instead. - - - Creating new Projects ------------------------ - -******************************************************************************** - The information in this chapter is NO LONGER RECOMMENDED by the FLTK team. -******************************************************************************** - -This chapter assumes that libraries and headers are copied into - - C:\Program Files\Microsoft Visual Studio 10.0\VC\ - -Create a new project of type "General", "Empty Project" and add a simple "C++" -file to it. The FLTK "hello" source code is a good base. - -Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK -libraries that you want to use (at least "fltk.lib") to Additional Dependencies -(Configuration Properties > Linker > Additional Dependencies). In the same -dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration -Properties > C/C++ > Preprocessor > Preprocessor Definitions). - -Compile and run your test program with F5. - -You can also include .fl resources: add a new Header file to your project, but -let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe" -from the "bin" directory and set it as the default editor. - -To automatically compile .fl files, open the Properties editor and change the -Element Type to Custom Build and click Apply. Now set the -Custom Build Steps to: - - Command Line: fluid.exe -c %(FullPath) - Description: Compiling Fluid .fl file - Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h - -Now add the generated .cxx file to your project as well. Whenever the .fl file -is changed, the corresponding .cxx file will be recompiled. - - - - FREQUENTLY ASKED QUESTIONS -============================ - - - Why does a console window appear when I run my program? ---------------------------------------------------------- - -Windows has a flag that determines whether an application -runs in the foreground with a console or in the background -without a console. - -If you're using gcc (i.e. MinGW or Cygwin), then use the -linker option "-mwindows" to make your application run in -the background and "-mconsole" to run in the foreground. Use -fltk-config --ldflags to see appropriate linker flags, or use -fltk-config --compile to compile a single source file. - -If you're using MS VC++, then you must set the linker option -"/subsystem:windows" to create a "Windows" program (w/o console -window), or set the linker option "/subsystem:console" for a -console program, i.e. with a console window. These options -are set differently in the FLTK project files, depending on -whether you select a "Debug" or "Release" build. - -Other compilers and build systems may have different options. - -Keep in mind that a windows application cannot send output -to stdout, even if you run it from an existing console -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". The same applies to Cygwin.) - - - How do I get OpenGL to work? ------------------------------- - -Both builds should automatically support OpenGL. - -The configuration file config.h has a number of settings -which control compile-time compilation. One such setting is -"HAVE_GL". This may be set to 0 to disable Open GL operation. -Changing the line in config.h to - - #define HAVE_GL 1 - -will change this to compile and link in OpenGL. - - - - LINKS -======= - -The following links may be of use: - -1. Main Cygwin homepage: - - http://www.cygwin.com/ - -2. Main MinGW homepage: - - http://www.mingw.org/ - - In particular look for the MinGW FAQ at this link for - a lot of useful Mingw-native development documentation. - - -3. Check out the FLTK newsgroups at the FLTK homepage: - - http://www.fltk.org/ - - Its archival search facilities are EXTREMELY useful - to check back through previous problems with this - sort of configuration before posting new questions. - -4. GNU Compiler Collection (GCC) compiler homepage: - - http://gcc.gnu.org/ - -5. OpenGL page - for OpenGL and GLUT libs - - http://www.opengl.org/ - -6. CMake homepage: - - https://cmake.org/ - - - - DOCUMENT HISTORY -================== - -Oct 25 2010 - matt: restructured entire document and verified instructions -Dec 20 2010 - matt: merged with README.win32 -Dec 22 2010 - Albrecht: added newer Cygwin (cross/mingw-w64) options -Feb 24 2012 - Albrecht: clarified console window FAQ -Jul 05 2017 - Albrecht: several updates, particularly on Visual Studio usage |
