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.
 |