@section Microsoft Visual C++
FFmpeg can be built with MSVC using a C99-to-C89 conversion utility and
-wrapper. At this time, only static builds are supported.
+wrapper.
You will need the following prerequisites:
To set up a proper MSVC environment in MSYS, you simply need to run
@code{msys.bat} from the Visual Studio command prompt.
-Caveat: Run @code{which link} to see which link you are using. If it is located
-at @code{/bin/link.exe}, then you have the wrong link in your @code{PATH}.
-Either move/remove that copy, or make sure MSVC's link.exe is higher up in your
-@code{PATH} than coreutils'.
-
-Place @code{c99wrap.exe}, @code{c99conv.exe}, and @code{yasm.exe} somewhere
-in your @code{PATH}.
+Place @code{makedef}, @code{c99wrap.exe}, @code{c99conv.exe}, and @code{yasm.exe}
+somewhere in your @code{PATH}.
Next, make sure @code{inttypes.h} and any other headers and libs you want to use
are located in a spot that MSVC can see. Do so by modifying the @code{LIB} and
make install
@end example
+If you wish to compile static libraries, add @code{--enable-shared} to your
+configure options. Note that due to the way MSVC handles DLL imports and
+exports, you cannot compile static and shared libraries at the same time, and
+enabling shared libraries will automatically disable the static ones.
+
Notes:
@itemize
+@item It is possible that coreutils' @code{link.exe} conflicts with MSVC's linker.
+You can find out by running @code{which link} to see which @code{link.exe} you
+are using. If it is located at @code{/bin/link.exe}, then you have the wrong one
+in your @code{PATH}. Either move or remove that copy, or make sure MSVC's
+@code{link.exe} takes precedence in your @code{PATH} over coreutils'.
+
@item If you wish to build with zlib support, you will have to grab a compatible
zlib binary from somewhere, with an MSVC import lib, or if you wish to link
statically, you can follow the instructions below to build a compatible