windows下libcurl的使用

2021-07-11 01:52:43 字數 2803 閱讀 2209

使用的是curl-7.26.0版本,這個版本下的根目錄下有.dsw檔案,個人只是覺得使用編譯方便點,其他版本未深究

解壓開啟根目錄下的curl***.dsw

選擇libcurl,單編譯這個release

********************===

使用的時候

指定vc路徑

include到目錄裡面的indclude

lib庫指到剛編譯的lib\release_lib\

1、給工程新增依賴的庫:專案->屬性->鏈結器->輸入->附加依賴項,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib新增進去

注意,debug配置用libcurld.lib

2、加入預編譯選項:專案->屬性->c/c++ ->預處理器->預處理器,把  ;building_libcurl;http_only複製進去(注意不要丟了";")

就可以靜態編譯了.

這裡再附上本人的乙個使用libcurl通過http上傳檔案內容的demo:

int _tmain(int argc, tchar* argv)

; char** argvarr = new char*[argc-1];

for(int i = 1; i < argc; i++)

_tprintf(text("logfile:%s,sizeofupload:%sb,uid:%s.\n"),argv[1],argv[2],argv[3]);

unsigned char sectext[256]=;

time_t ts = time(null);

sprintf((char*)sectext,"%i64d",ts);

md5 md5;

md5.generatemd5(sectext,strlen((const char*)sectext)); //使用md5生成token,專案需要

sprintf(buf,"access_token:%s\n"

"uid:%s\n"

"machine_id:mac\n"

"log_file:%s\n"

"platform:1\n"

"line_number:0\n"

"count:0\n"

"date_time:0\n"

"ts:%i64d\n"

"encoding:gb2312",md5.tostring().c_str(),argvarr[2],"logent.lg",time(null));

wr_error = 0;

wr_index = 0;

/* first step, init curl */

curl = curl_easy_init();

if (!curl)

char pbufdest[1024];

lpctstr pstr = argv[1]; //上傳檔案的本地位址

getlastlog(pstr, 0, 0,pbufdest, atoi(argvarr[1])); //讀取檔案內容,argvarr[1]是讀取的位元組數

/* fill in the file upload field. this makes libcurl load data from

the given file name when curl_easy_perform() is called. */

//curl_formadd(&formpost,

// &lastptr,

// curlform_copyname, "sendfile",

// curlform_file, "postit2.c",

// curlform_end);

/////* fill in the filename field */

//curl_formadd(&formpost,

// &lastptr,

// curlform_copyname, "filename",

// curlform_copycontents, "postit2.c",

// curlform_end);

/////* fill in the submit field too, even if this is rarely needed */

//curl_formadd(&formpost,

// &lastptr,

// curlform_copyname, "submit",

// curlform_copycontents, "send",

// curlform_end);

curl = curl_easy_init();

//multi_handle = curl_multi_init();

// if(curl && multi_handle)

//下面可以對應答的資料進行處理了

// strdata

printf("%s.\n",utf8togbk(wr_buf).c_str());

} // 清除curl物件

curl_easy_cleanup(curl);

system("pause");

return 0;

}

linux下編譯安裝libcurl 附使用示例

說明 在編譯任何開源 前可以先看看readme,install等檔案,會提供如何編 譯的資訊。在 此教程中通過閱讀readme和git info文 件可以得到很多編譯安裝資訊。在git info 中很明顯地說了執 行 buildconf產生configure配置檔案。所有不要在這裡 因為找不到con...

linux下編譯安裝libcurl 附使用示例

說明 在編譯任何開源 前可以先看看readme,install等檔案,會提供如何編 譯的資訊。在 此教程中通過閱讀readme和git info文 件可以得到很多編譯安裝資訊。在git info 中很明顯地說了執 行 buildconf產生configure配置檔案。所有不要在這裡 因為找不到con...

Linux下libcurl的編譯和交叉編譯

若是從github上直接clone下來的工程,則需要對工程做如下操作 aclocal autoconf autoheader automake add missing 若執行automake add missing時遇到 required file ltmain.sh not found 進行lib...