123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- Instructions for building libpng using Microsoft Visual Studio
- ==============================================================
- Copyright (c) 2018 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 2010. It may also work under 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).
|