1 _ _ ____ _ 2 ___| | | | _ \| | 3 / __| | | | |_) | | 4 | (__| |_| | _ <| |___ 5 \___|\___/|_| \_\_____| 6 7 How To Build libcurl to Use c-ares For Asynch Name Resolves 8 =========================================================== 9 10c-ares: 11 http://c-ares.haxx.se/ 12 13NOTE 14 The latest libcurl version requires c-ares 1.6.0 or later. 15 16 Once upon the time libcurl built fine with the "original" ares. That is no 17 longer true. You need to use c-ares. 18 19Build c-ares 20============ 21 221. unpack the c-ares archive 232. cd c-ares-dir 243. ./configure 254. make 265. make install 27 28Build libcurl to use c-ares in the curl source tree 29=================================================== 30 311. name or symlink the c-ares source directory 'ares' in the curl source 32 directory 332. ./configure --enable-ares 34 35 Optionally, you can point out the c-ares install tree root with the the 36 --enable-ares option. 37 383. make 39 40Build libcurl to use an installed c-ares 41======================================== 42 431. ./configure --enable-ares=/path/to/ares/install 442. make 45 46c-ares on win32 47=============== 48(description brought by Dominick Meglio) 49 50First I compiled c-ares. I changed the default C runtime library to be the 51single-threaded rather than the multi-threaded (this seems to be required to 52prevent linking errors later on). Then I simply build the areslib project (the 53other projects adig/ahost seem to fail under MSVC). 54 55Next was libcurl. I opened lib/config-win32.h and I added a: 56 #define USE_ARES 1 57 58Next thing I did was I added the path for the ares includes to the include 59path, and the libares.lib to the libraries. 60 61Lastly, I also changed libcurl to be single-threaded rather than 62multi-threaded, again this was to prevent some duplicate symbol errors. I'm 63not sure why I needed to change everything to single-threaded, but when I 64didn't I got redefinition errors for several CRT functions (malloc, stricmp, 65etc.) 66 67I would have modified the MSVC++ project files, but I only have VC.NET and it 68uses a different format than VC6.0 so I didn't want to go and change 69everything and remove VC6.0 support from libcurl. 70