| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| How To Build libcurl to Use c-ares For Asynch Name Resolves |
| =========================================================== |
| |
| c-ares: |
| http://c-ares.haxx.se/ |
| |
| NOTE |
| The latest libcurl version requires c-ares 1.6.0 or later. |
| |
| Once upon the time libcurl built fine with the "original" ares. That is no |
| longer true. You need to use c-ares. |
| |
| Build c-ares |
| ============ |
| |
| 1. unpack the c-ares archive |
| 2. cd c-ares-dir |
| 3. ./configure |
| 4. make |
| 5. make install |
| |
| Build libcurl to use c-ares in the curl source tree |
| =================================================== |
| |
| 1. name or symlink the c-ares source directory 'ares' in the curl source |
| directory |
| 2. ./configure --enable-ares |
| |
| Optionally, you can point out the c-ares install tree root with the the |
| --enable-ares option. |
| |
| 3. make |
| |
| Build libcurl to use an installed c-ares |
| ======================================== |
| |
| 1. ./configure --enable-ares=/path/to/ares/install |
| 2. make |
| |
| c-ares on win32 |
| =============== |
| (description brought by Dominick Meglio) |
| |
| First I compiled c-ares. I changed the default C runtime library to be the |
| single-threaded rather than the multi-threaded (this seems to be required to |
| prevent linking errors later on). Then I simply build the areslib project (the |
| other projects adig/ahost seem to fail under MSVC). |
| |
| Next was libcurl. I opened lib/config-win32.h and I added a: |
| #define USE_ARES 1 |
| |
| Next thing I did was I added the path for the ares includes to the include |
| path, and the libares.lib to the libraries. |
| |
| Lastly, I also changed libcurl to be single-threaded rather than |
| multi-threaded, again this was to prevent some duplicate symbol errors. I'm |
| not sure why I needed to change everything to single-threaded, but when I |
| didn't I got redefinition errors for several CRT functions (malloc, stricmp, |
| etc.) |
| |
| I would have modified the MSVC++ project files, but I only have VC.NET and it |
| uses a different format than VC6.0 so I didn't want to go and change |
| everything and remove VC6.0 support from libcurl. |