본문 바로가기

C/C++

[windows] curl 빌드 및 사용


windows에서 curl 빌드 및 사용하기

 


curl은 데이터 전송하는 툴 및 라이브러리로서, [1]의 공식 홈페이지를 참고한다.

http, ftp, telnet, ldap, pop3, smtp등 많은 프로토콜을 지원하며, 이 프로토콜을 이용한 업로드/다운로드, 프록시, 인증, 쿠키 등의 기능도 지원한다.

 

[2][3]에서 참고한 내용을 바탕으로 다시 정리해 본다.

빌드의 내용은 [2]를 참고 했으며, [3]에는 설치 및 사용법 등이 자세히 나와 있다.

 

1. 다운로드

- 직접 다운로드 > https://curl.haxx.se/download.html

- Github > https://github.com/curl/curl

 

2. curl 빌드

([2]에 이미지를 포함한 상세한 설명이 있으니 참고)

- github에서 받은 경우 .dsp 파일이 없기 때문에 아래 .bat 파일 실행

 > curl/projects/generate.bat

- Visual Studio 버전에 맞게 curl-all.sln (curl-all.dsw) 빌드

- lib를 사용하기 위해 ‘libcurl’ 프로젝트를 아래의 환경에서 빌드

 > Win32 LIB Debug / Win32 LIB Release

 

3. curl lib 사용

- curl/build/Win32 에서 VC 버전에 맞는 폴더에서 lib 확인

- 사용하려는 프로젝트에서 libheader 파일을 include해서 사용

> include > curl/include/curl 폴더의 .h 파일들

> lib : ‘libcurld.lib / libcurl.lib’

(.. 빌드 오류!!)

- 속성 > C/C++ > Preprocessor definitions CURL_STATICLIB추가

 (curl-all.dsw(sln)에 보면 CURL_STATICLIB이 추가되어 있을 것이다)

- 속성 > Linker > Inputws2_32.lib wldap32.lib추가

 (curl이 이 2개의 라이브러리에 의존성이 걸려있다고 한다)

 

그리고 아래의 코드를 작성하여 빌드가 성공하는지 확인

#include "./curl/include/curl.h"

 

{

           CURL *curl = NULL;

           CURLcode res;

 

           //curl_global_init( CURL_GLOBAL_ALL ); //안해도 되나?

 

           curl = curl_easy_init();

 

           if (curl)

           {

                     curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");

                     res = curl_easy_perform(curl);

 

                     /* always cleanup */

                     curl_easy_cleanup(curl);

           }

}

 

 

<참조>

1. https://curl.haxx.se/

2. http://blog.naver.com/PostView.nhn?blogId=cestlavie_01&logNo=40200779497

3. https://www.lesstif.com/pages/viewpage.action?pageId=14745703