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 확인
- 사용하려는 프로젝트에서 lib와 header 파일을 include해서 사용
> include > curl/include/curl 폴더의 .h 파일들
> lib : ‘libcurld.lib / libcurl.lib’
(헐.. 빌드 오류!!)
- 속성 > C/C++ > Preprocessor definitions 에 ‘CURL_STATICLIB’ 추가
(curl-all.dsw(sln)에 보면 CURL_STATICLIB이 추가되어 있을 것이다)
- 속성 > Linker > Input에 ’ws2_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); } } |
<참조>
2. http://blog.naver.com/PostView.nhn?blogId=cestlavie_01&logNo=40200779497
3. https://www.lesstif.com/pages/viewpage.action?pageId=14745703