2014-04-06 01:05:03 +08:00
|
|
|
Building via IDE Project Files
|
|
|
|
==============================
|
|
|
|
|
|
|
|
This document describes how to compile, build and install curl and libcurl
|
|
|
|
from sources using an IDE based development tool such as Visual Studio.
|
|
|
|
|
|
|
|
Project files are currently available for Visual C++ v6.0 to v12.0. The
|
|
|
|
following directory structure has been used to cater for this:
|
|
|
|
|
|
|
|
somedirectory\
|
|
|
|
|_curl
|
|
|
|
|_projects
|
|
|
|
|_<platform>
|
|
|
|
|_<ide>
|
|
|
|
|_lib
|
|
|
|
|_src
|
|
|
|
|
|
|
|
This structure allows for side-by-side compilation of curl on the same
|
|
|
|
machine using different versions of a given compiler (for example VC8, VC9
|
|
|
|
and VC10) and allows for your own application or product to be compiled
|
|
|
|
against those variants of libcurl for example.
|
|
|
|
|
|
|
|
Note: Typically this side-by-side compilation is generally only required
|
|
|
|
when a library is being compiled against dynamic runtime libraries.
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
============
|
|
|
|
|
|
|
|
The projects files also support build configurations that require third
|
2014-11-04 19:45:35 +08:00
|
|
|
party dependencies such as OpenSSL and SSH2. If you wish to support these,
|
2014-04-06 01:05:03 +08:00
|
|
|
you will also need to download and compile those libraries as well.
|
|
|
|
|
|
|
|
To support compilation of these libraries using different versions of
|
|
|
|
compilers, the following directory structure has been used for both the
|
|
|
|
output of curl and libcurl as well as these dependencies.
|
|
|
|
|
|
|
|
somedirectory\
|
|
|
|
|_curl
|
|
|
|
| |_ build
|
|
|
|
| |_<architecture>
|
|
|
|
| |_<ide>
|
|
|
|
| |_<configuration>
|
|
|
|
| |_lib
|
|
|
|
| |_src
|
|
|
|
|
|
|
|
|
|_openssl
|
|
|
|
| |_ build
|
|
|
|
| |_<architecture>
|
|
|
|
| |_VC <version>
|
|
|
|
| |_<configuration>
|
|
|
|
|
|
|
|
|
|_libssh2
|
|
|
|
|_ build
|
|
|
|
|_<architecture>
|
|
|
|
|_VC <version>
|
|
|
|
|_<configuration>
|
|
|
|
|
2014-05-02 06:02:34 +08:00
|
|
|
As OpenSSL doesn't support side-by-side compilation when using different
|
|
|
|
versions of Visual Studio a build helper batch file has been provided to
|
|
|
|
assist with this. Please run "build-openssl -help" for usage details.
|
|
|
|
|
2014-04-06 01:05:03 +08:00
|
|
|
Building with Visual C++
|
|
|
|
========================
|
|
|
|
|
|
|
|
To build with VC++, you will of course have to first install VC++ which is
|
|
|
|
part of Visual Studio.
|
|
|
|
|
|
|
|
If you are building with VC6 then you will also need the February 2003
|
2014-11-03 02:14:34 +08:00
|
|
|
Edition of the Windows Platform SDK which can be downloaded from:
|
2014-04-06 01:05:03 +08:00
|
|
|
|
|
|
|
http://www.microsoft.com/en-us/download/details.aspx?id=12261
|
|
|
|
|
2014-11-03 02:14:34 +08:00
|
|
|
If you require support for Internationalized Domain Names via Windows IDN
|
|
|
|
then you will need either:
|
|
|
|
|
|
|
|
* Microsoft Internationalized Domain Name (IDN) Mitigation APIs:
|
|
|
|
http://www.microsoft.com/en-us/download/details.aspx?id=734
|
|
|
|
|
|
|
|
* Microsoft Windows SDK Update for Windows Vista:
|
|
|
|
http://www.microsoft.com/en-us/download/details.aspx?id=23719
|
|
|
|
|
|
|
|
* Microsoft Visual Studio 2010 or above
|
|
|
|
|
2014-04-06 01:05:03 +08:00
|
|
|
Once you have VC++ installed you should launch the application and open one
|
|
|
|
of the solution or workspace files.
|
|
|
|
|
|
|
|
Whilst files are provided for both libcurl and the curl command line tool as
|
|
|
|
well as a configuration that includes both, it is recommend that you use the
|
|
|
|
all-in-one configuration.
|
|
|
|
|
|
|
|
Notes
|
|
|
|
=====
|
|
|
|
|
|
|
|
The following keywords have been used in the directory hierarchy:
|
|
|
|
|
|
|
|
<platform> - The platform (For example: Windows)
|
|
|
|
<ide> - The IDE (For example: VC6, VC10, BCC5)
|
|
|
|
<architecture> - The platform architecture (For example: Win32, Win64)
|
|
|
|
<configuration> - The target configuration (For example: DLL Debug,
|
|
|
|
LIB Release - LIB OpenSSL)
|
|
|
|
|
2014-11-04 19:45:35 +08:00
|
|
|
If you are using the source code from the git repository, rather than a
|
|
|
|
release archive or nightly build, you will need to generate the project
|
2014-11-04 20:32:33 +08:00
|
|
|
files. Please run "generate -help" for usage details.
|
2014-11-04 19:45:35 +08:00
|
|
|
|
|
|
|
Should you wish to help out with some of the items on the TODO list, or
|
|
|
|
find bugs in the project files that need correcting, and would like to
|
|
|
|
submit updated files back then please note that, whilst the solution files
|
|
|
|
can be edited directly, the templates for the project files (which are
|
|
|
|
stored in the git repositoty) will need to be modified rather than the
|
|
|
|
generated project files that Visual Studio uses.
|
|
|
|
|
2015-06-21 06:45:25 +08:00
|
|
|
Legacy Windows and SSL
|
|
|
|
======================
|
|
|
|
Some of the project configurations use as an SSL backend 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.
|
|
|
|
|
2014-04-06 01:05:03 +08:00
|
|
|
TODO
|
|
|
|
====
|
|
|
|
|
|
|
|
These project files are a recent addition to the curl source code and as such
|
|
|
|
are not 100% complete. This is a list of things that are still todo:
|
|
|
|
|
|
|
|
* Support zlib
|
|
|
|
* Use of static runtime libraries
|
2014-05-21 03:01:26 +08:00
|
|
|
* Generate *.vcxproj.filters files for VC10, VC11 and VC12
|
2014-05-23 06:08:36 +08:00
|
|
|
* Add the Test Suite components
|
2014-04-06 01:05:03 +08:00
|
|
|
* Support for other development IDEs
|
|
|
|
|
|
|
|
Any additional help would be appreciated ;-)
|