[flac-dev] MSVC 2005/2008 can't compile libFLAC

lvqcl lvqcl.mail at gmail.com
Mon Jan 16 21:19:14 UTC 2017

These versions of Visual Studio don't have stdint.h and
all [u]intNN_t types. But now these types are everywhere
in FLAC codebase.

An easy fix would be to move definitions of these types
 from share/compat.h into FLAC/ordinals.h (see attached
But it may break some 3rd party programs that include
(directly or indirectly) this file and also have their
own typedefs for these types.

(Also, currently FLAC/ordinals.h contains some nonsense
like "typedef uint32_t __int32 FLAC__uint32;", but that's
not a real problem)

So, what to do?

1) include share/compat.h where needed (but it's too big,
and even indirectly includes <windows.h>).

2) create a new file compat_stdint.h or compat_inttypes.h
that has only necessary definitions and include it.

3) apply the attached patch and hope that it has the most
compatible definitions for these types.

4) drop MSVC 2005/2008 support.

5) revert some changes of integer types to [u]intNN_t.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ordinals_fix.patch
Type: application/octet-stream
Size: 1738 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/flac-dev/attachments/20170117/7ab5fbaa/attachment.obj>

More information about the flac-dev mailing list