mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Instructions for building libpng using Microsoft Visual Studio
 | |
| ==============================================================
 | |
| 
 | |
| Copyright (c) 2018,2022 Cosmin Truta
 | |
| Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson
 | |
| 
 | |
| This code is released under the libpng license.
 | |
| For conditions of distribution and use, see the disclaimer and license
 | |
| in png.h
 | |
| 
 | |
| This directory contains a solution for building libpng under Microsoft
 | |
| Visual Studio 2019.  It may also work under earlier or later versions
 | |
| of Visual Studio.  You should be familiar with Visual Studio before
 | |
| using this solution.
 | |
| 
 | |
| Initial preparations
 | |
| --------------------
 | |
| You must enter some information in zlib.props before attempting to
 | |
| build with this 'solution'.  Please read and edit zlib.props first.
 | |
| You will probably not be familiar with the contents of zlib.props -
 | |
| do not worry, it is mostly harmless.
 | |
| 
 | |
| This is all you need to do to build the 'release' and 'release library'
 | |
| configurations.
 | |
| 
 | |
| Debugging
 | |
| ---------
 | |
| The release configurations default to /Ox optimization.  Full debugging
 | |
| information is produced (in the .pdb), but if you encounter a problem
 | |
| the optimization may make it difficult to debug.  Simply rebuild with a
 | |
| lower optimization level (e.g. /Od.)
 | |
| 
 | |
| Linking your application
 | |
| ------------------------
 | |
| Normally you should link against the 'release' configuration.  This
 | |
| builds a DLL for libpng with the default runtime options used by Visual
 | |
| Studio.  In particular the runtime library is the "MultiThreaded DLL"
 | |
| version.  If you use Visual Studio defaults to build your application,
 | |
| you should have no problems.
 | |
| 
 | |
| If you don't use the Visual Studio defaults your application must still
 | |
| be built with the default runtime option (/MD).  If, for some reason,
 | |
| it is not then your application will crash inside libpng16.dll as soon
 | |
| as libpng tries to read from a file handle you pass in.
 | |
| 
 | |
| If you do not want to use the DLL, and prefer static linking instead,
 | |
| you may choose the 'release library' configuration.  This is built with
 | |
| a non-standard runtime library - the "MultiThreaded" version.  When you
 | |
| build your application, it must be compiled with this option (/MT),
 | |
| otherwise it will not build (if you are lucky) or it will crash (if you
 | |
| are not.) See the WARNING file that is distributed with this README.
 | |
| 
 | |
| Stop reading here
 | |
| -----------------
 | |
| You have enough information to build a working application.
 | |
| 
 | |
| Debug versions have limited support
 | |
| -----------------------------------
 | |
| This solution includes limited support for debug versions of libpng.
 | |
| You do not need these unless your own solution itself uses debug builds
 | |
| (it is far more effective to debug on the release builds, there is no
 | |
| point building a special debug build unless you have heap corruption
 | |
| problems that you can't track down.)
 | |
| 
 | |
| The debug build of libpng is minimally supported.  Support for debug
 | |
| builds of zlib is also minimal.  Please keep this in mind, if you want
 | |
| to use it.
 | |
| 
 | |
| WARNING
 | |
| -------
 | |
| Libpng 1.6.x does not use the default run-time library when building
 | |
| static library builds of libpng; instead of the shared DLL runtime, it
 | |
| uses a static runtime.  If you need to change this, make sure to change
 | |
| the setting on all the relevant projects:
 | |
| 
 | |
|     libpng
 | |
|     zlib
 | |
|     all the test programs
 | |
| 
 | |
| The runtime library settings for each build are as follows:
 | |
| 
 | |
|                Release        Debug
 | |
|     DLL         /MD            /MDd
 | |
|     Library     /MT            /MTd
 | |
| 
 | |
| Also, be sure to build libpng, zlib, and your project, all for the same
 | |
| platform (e.g., 32-bit or 64-bit).
 | 
