123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- Building with Visual C++, prerequisites
- =======================================
- This document describes how to compile, build and install curl and libcurl
- from sources using the Visual C++ build tool. To build with VC++, you will
- of course have to first install VC++. The minimum required version of
- VC is 6 (part of Visual Studio 6). However using a more recent version is
- strongly recommended.
- VC++ is also part of the Windows Platform SDK. You do not have to install
- the full Visual Studio or Visual C++ if all you want is to build curl.
- The latest Platform SDK can be downloaded freely from:
- https://msdn.microsoft.com/en-us/windows/bb980924
- If you are building with VC6 then you will also need the February 2003
- Edition of the Platform SDK which can be downloaded from:
- https://www.microsoft.com/en-us/download/details.aspx?id=12261
- If you wish to support zlib, openssl, c-ares, ssh2, you will have to download
- them separately and copy them to the deps directory as shown below:
-
- somedirectory\
- |_curl-src
- | |_winbuild
- |
- |_deps
- |_ lib
- |_ include
- |_ bin
- It is also possible to create the deps directory in some other random
- places and tell the Makefile its location using the WITH_DEVEL option.
- Building with Visual C++
- ========================
- Open a Visual Studio Command prompt or the SDK CMD shell.
- Using the CMD Shell:
- choose the right environment via the setenv command (see setenv /?)
- for the full list of options. setenv /xp /x86 /release for example.
- Using the Visual Studio command prompt Shell:
- Everything is already pre-configured by calling one of the command
- prompt.
- Once you are in the console, go to the winbuild directory in the Curl
- sources:
- cd curl-src\winbuild
- Then you can call nmake /f Makefile.vc with the desired options (see below).
- The builds will be in the top src directory, builds\ directory, in
- a directory named using the options given to the nmake call.
- nmake /f Makefile.vc mode=<static or dll> <options>
- where <options> is one or many of:
- VC=<6,7,8,9,10,11,12,14> - VC versions
- WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
- Defaults to sibbling directory deps: ../deps
- Libraries can be fetched at http://windows.php.net/downloads/php-sdk/deps/
- Uncompress them into the deps folder.
- WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
- WITH_MBEDTLS=<dll or static> - Enable mbedTLS support, DLL or static
- WITH_CARES=<dll or static> - Enable c-ares support, DLL or static
- WITH_ZLIB=<dll or static> - Enable zlib support, DLL or static
- WITH_SSH2=<dll or static> - Enable libSSH2 support, DLL or static
- ENABLE_SSPI=<yes or no> - Enable SSPI support, defaults to yes
- ENABLE_IPV6=<yes or no> - Enable IPv6, defaults to yes
- ENABLE_IDN=<yes or no> - Enable use of Windows IDN APIs, defaults to yes
- Requires Windows Vista or later, or installation from:
- https://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
- ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, defaults to yes
- GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
- DEBUG=<yes or no> - Debug builds
- MACHINE=<x86 or x64> - Target architecture (default is x86)
- Static linking of Microsoft's C RunTime (CRT):
- ==============================================
- If you are using mode=static nmake will create and link to the static build of
- libcurl but *not* the static CRT. If you must you can force nmake to link in
- the static CRT by passing RTLIBCFG=static. Typically you shouldn't use that
- option, and nmake will default to the DLL CRT. RTLIBCFG is rarely used and
- therefore rarely tested. When passing RTLIBCFG for a configuration that was
- already built but not with that option, or if the option was specified
- differently, you must destroy the build directory containing the configuration
- so that nmake can build it from scratch.
- Legacy Windows and SSL
- ======================
- When you build curl using the build files in this directory the default SSL
- backend will be WinSSL (Windows SSPI, more specifically Schannel), the native
- SSL library that comes with the Windows OS. WinSSL in Windows <= XP is not able
- to connect to servers that no longer support the legacy handshakes and
- algorithms used by those versions. If you will be using curl in one of those
- earlier versions of Windows you should choose another SSL backend like OpenSSL.
|