Files correlati : Commento : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			163 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 v14.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
 | |
|    party dependencies such as OpenSSL, wolfSSL and SSH2. If you wish to support
 | |
|    these, 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>
 | |
| 
 | |
|    As OpenSSL and wolfSSL don't support side-by-side compilation when using
 | |
|    different versions of Visual Studio, build helper batch files have been
 | |
|    provided to assist with this. Please run "build-openssl -help" and/or
 | |
|    "build-wolfssl -help" for usage details.
 | |
| 
 | |
| 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
 | |
|    Edition of the Windows Platform SDK which can be downloaded from:
 | |
| 
 | |
|     https://www.microsoft.com/en-us/download/details.aspx?id=12261
 | |
| 
 | |
|    If you require support for Internationalized Domain Names via Windows IDN
 | |
|    then you will need either:
 | |
| 
 | |
|     * Microsoft Internationalized Domain Name (IDN) Mitigation APIs:
 | |
|       https://www.microsoft.com/en-us/download/details.aspx?id=734
 | |
| 
 | |
|     * Microsoft Windows SDK Update for Windows Vista:
 | |
|       https://www.microsoft.com/en-us/download/details.aspx?id=23719
 | |
| 
 | |
|     * Microsoft Visual Studio 2010 or above
 | |
| 
 | |
|    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.
 | |
| 
 | |
| Running DLL based configurations
 | |
| ================================
 | |
| 
 | |
|    If you are a developer and plan to run the curl tool from Visual Studio (eg
 | |
|    you are debugging) with any third-party libraries (such as OpenSSL, wolfSSL
 | |
|    or LibSSH2) then you will need to add the search path of these DLLs to the
 | |
|    configuration's PATH environment. To do that:
 | |
| 
 | |
|     * Open the 'curl-all.sln' or 'curl.sln' solutions
 | |
| 
 | |
|     * Right-click on the 'curl' project and select Properties
 | |
| 
 | |
|     * Navigate to 'Configuration Properties > Debugging > Environment'
 | |
| 
 | |
|     * Add PATH='Path to DLL';C:\Windows\system32;C:\Windows;
 | |
|                C:\Windows\System32\Wbem
 | |
| 
 | |
|    ... where 'Path to DLL` is the configuration specific path. For example the
 | |
|    following configurations in Visual Studio 2010 might be:
 | |
|    
 | |
|    DLL Debug - DLL OpenSSL (Win32):
 | |
|    PATH=..\..\..\..\..\openssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
 | |
|         C:\Windows;C:\Windows\System32\Wbem
 | |
| 
 | |
|    DLL Debug - DLL OpenSSL (x64):
 | |
|    PATH=..\..\..\..\..\openssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
 | |
|         C:\Windows;C:\Windows\System32\Wbem
 | |
| 
 | |
|    DLL Debug - DLL wolfSSL (Win32):
 | |
|    PATH=..\..\..\..\..\wolfssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
 | |
|         C:\Windows;C:\Windows\System32\Wbem
 | |
| 
 | |
|    DLL Debug - DLL wolfSSL (x64):
 | |
|    PATH=..\..\..\..\..\wolfssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
 | |
|         C:\Windows;C:\Windows\System32\Wbem
 | |
| 
 | |
|    If you are using a configuration that uses multiple third-party library DLLs
 | |
|    (such as DLL Debug - DLL OpenSSL - DLL LibSSH2) then 'Path to DLL' will need
 | |
|    to contain the path to both of these.
 | |
| 
 | |
| 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)
 | |
| 
 | |
|    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
 | |
|    files. Please run "generate -help" for usage details. 
 | |
| 
 | |
|    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.
 | |
| 
 | |
| Legacy Windows and SSL
 | |
| ======================
 | |
| 
 | |
|    Some of the project configurations allow the use of WinSSL (specifically
 | |
|    SChannel from Windows SSPI), the native SSL library in Windows. However,
 | |
|    WinSSL in Windows <= XP is unable 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 such as OpenSSL.
 |