|
|
|
|
|
|
|
|
|
|
|
___ __ _ _ __ ___ ___
|
|
|
|
/ __| ___ / _` | '__/ _ \/ __|
|
|
|
|
| (_ |___| (_| | | | __/\__ \
|
|
|
|
\___| \__,_|_| \___||___/
|
|
|
|
|
|
|
|
|
|
|
|
How to build c-ares using MSVC or Visual Studio
|
|
|
|
=================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
How to build using MSVC from the command line
|
|
|
|
---------------------------------------------
|
|
|
|
|
|
|
|
Open a command prompt window and ensure that the environment is properly
|
|
|
|
set up in order to use MSVC or Visual Studio compiler tools.
|
|
|
|
|
|
|
|
Change to c-ares source folder where Makefile.msvc file is located and run:
|
|
|
|
|
|
|
|
> nmake -f Makefile.msvc
|
|
|
|
|
|
|
|
This will build all c-ares libraries as well as three sample programs.
|
|
|
|
|
|
|
|
Once the above command has finished a new folder named MSVCXX will exist
|
|
|
|
below the folder where makefile.msvc is found. The name of the folder
|
|
|
|
depends on the MSVC compiler version being used to build c-ares.
|
|
|
|
|
|
|
|
Below the MSVCXX folder there will exist four folders named 'cares',
|
|
|
|
'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
|
|
|
|
holds the c-ares libraries you have just generated, the other three
|
|
|
|
hold sample programs that use the libraries.
|
|
|
|
|
|
|
|
The above command builds four versions of the c-ares library, dynamic
|
|
|
|
and static versions and each one in release and debug flavours. Each
|
|
|
|
of these is found in folders named dll-release, dll-debug, lib-release,
|
|
|
|
and lib-debug, which hang from the 'cares' folder mentioned above. Each
|
|
|
|
sample program also has folders with the same names to reflect which
|
|
|
|
library version it is using.
|
|
|
|
|
|
|
|
|
|
|
|
How to install using MSVC from the command line
|
|
|
|
-----------------------------------------------
|
|
|
|
|
|
|
|
In order to allow easy usage of c-ares libraries it may be convenient to
|
|
|
|
install c-ares libraries and header files to a common subdirectory tree.
|
|
|
|
|
|
|
|
Once that c-ares libraries have been built using procedure described above,
|
|
|
|
use same command prompt window to define environment variable INSTALL_DIR
|
|
|
|
to designate the top subdirectory where installation of c-ares libraries and
|
|
|
|
header files will be done.
|
|
|
|
|
|
|
|
> set INSTALL_DIR=c:\c-ares
|
|
|
|
|
|
|
|
Afterwards, run following command to actually perform the installation:
|
|
|
|
|
|
|
|
> nmake -f Makefile.msvc install
|
|
|
|
|
|
|
|
Installation procedure will copy c-ares libraries to subdirectory 'lib' and
|
|
|
|
c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
|
|
|
|
|
|
|
|
When environment variable INSTALL_DIR is not defined, installation is done
|
|
|
|
to c-ares source folder where Makefile.msvc file is located.
|
|
|
|
|
|
|
|
|
|
|
|
How to build using Visual Studio 6 IDE
|
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
A VC++ 6.0 reference workspace (vc6aws.dsw) is available within the 'vc'
|
|
|
|
folder to allow proper building of the library and sample programs.
|
|
|
|
|
|
|
|
1) Open the vc6aws.dsw workspace with MSVC6's IDE.
|
|
|
|
2) Select 'Build' from top menu.
|
|
|
|
3) Select 'Batch Build' from dropdown menu.
|
|
|
|
4) Make sure that the sixteen project configurations are 'checked'.
|
|
|
|
5) Click on the 'Build' button.
|
|
|
|
6) Once the sixteen project configurations are built you are done.
|
|
|
|
|
|
|
|
Dynamic and static c-ares libraries are built in debug and release flavours,
|
|
|
|
and can be located each one in its own subdirectory, dll-debug, dll-release,
|
|
|
|
lib-debug and lib-release, all of them below the 'vc\cares' subdirectory.
|
|
|
|
|
|
|
|
In the same way four executable versions of each sample program are built,
|
|
|
|
each using its respective library. The resulting sample executables are
|
|
|
|
located in its own subdirectory, dll-debug, dll-release, lib-debug and
|
|
|
|
lib-release, below the 'vc\acountry', 'vc\adig' and 'vc\ahost'folders.
|
|
|
|
|
|
|
|
These reference VC++ 6.0 configurations are generated using the dynamic CRT.
|
|
|
|
|
|
|
|
|
|
|
|
How to build using Visual Studio 2003 or newer IDE
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
First you have to convert the VC++ 6.0 reference workspace and project files
|
|
|
|
to the Visual Studio IDE version you are using, following next steps:
|
|
|
|
|
|
|
|
1) Open vc\vc6aws.dsw with VS20XX.
|
|
|
|
2) Allow VS20XX to update all projects and workspaces.
|
|
|
|
3) Save ALL and close VS20XX.
|
|
|
|
4) Open vc\vc6aws.sln with VS20XX.
|
|
|
|
5) Select batch build, check 'all' projects and click 'build' button.
|
|
|
|
|
|
|
|
Same comments relative to generated files and folders as done above for
|
|
|
|
Visual Studio 6 IDE apply here.
|
|
|
|
|
|
|
|
|
|
|
|
Relationship between c-ares library file names and versions
|
|
|
|
-----------------------------------------------------------
|
|
|
|
|
|
|
|
c-ares static release library version files:
|
|
|
|
|
|
|
|
libcares.lib -> static release library
|
|
|
|
|
|
|
|
c-ares static debug library version files:
|
|
|
|
|
|
|
|
libcaresd.lib -> static debug library
|
|
|
|
|
|
|
|
c-ares dynamic release library version files:
|
|
|
|
|
|
|
|
cares.dll -> dynamic release library
|
|
|
|
cares.lib -> import library for the dynamic release library
|
|
|
|
cares.exp -> export file for the dynamic release library
|
|
|
|
|
|
|
|
c-ares dynamic debug library version files:
|
|
|
|
|
|
|
|
caresd.dll -> dynamic debug library
|
|
|
|
caresd.lib -> import library for the dynamic debug library
|
|
|
|
caresd.exp -> export file for the dynamic debug library
|
|
|
|
caresd.pdb -> debug symbol file for the dynamic debug library
|
|
|
|
|
|
|
|
|
|
|
|
How to use c-ares static libraries
|
|
|
|
----------------------------------
|
|
|
|
|
|
|
|
When using the c-ares static library in your program, you will have to
|
|
|
|
define preprocessor symbol CARES_STATICLIB while building your program,
|
|
|
|
otherwise you will get errors at linkage stage.
|
|
|
|
|
|
|
|
|
|
|
|
Have Fun!
|
|
|
|
|