使用的是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...