ubuntu 安裝libcurl庫
阿新 • • 發佈:2019-02-19
網上找了一個關於獲取htm網頁的原始碼編譯是提示:
fatal error: curl/curl.h: No such file or directory compilation terminated.
初步懷疑是少了curl的庫,去百度搜了一下,庫的名字為libcurl。使用 apt-get install libcurl3 後編譯,還是提示找不到標頭檔案。經過搜尋,在Ubuntu下是需要安裝 libcurl4-openssl-dev 。安裝完成後 檢視是否有 /usr/include/curl 這個目錄,有說明安裝成功。
第二次編譯的時候,提示
/tmp/ccVvExfd.o: In function `main' :
test.c:(.text+0xa1): undefined reference to `curl_easy_init'
test.c:(.text+0xd4): undefined reference to `curl_easy_setopt'
test.c:(.text+0xe0): undefined reference to `curl_easy_perform'
test.c:(.text+0xf0): undefined reference to `curl_easy_cleanup'
collect2: ld returned 1 exit status
估計是找不到庫的引用,嘗試在編譯時,加上 -l 選項即可,例如:
gcc get_htm.c -o get_htm -lcrul
獲取htm網頁原始碼:
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
CURL *curl; //定義CURL型別的指標
CURLcode res; //定義CURLcode型別的變數,儲存返回狀態碼
if(argc!=2)
{
printf("Usage : file <url>;/n" );
exit(1);
}
curl = curl_easy_init(); //初始化一個CURL型別的指標
if(curl!=NULL)
{
//設定curl選項. 其中CURLOPT_URL是讓使用者指定url. argv[1]中存放的命令列傳進來的網址
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
//呼叫curl_easy_perform 執行我們的設定.並進行相關的操作. 在這裡只在螢幕上顯示出來.
res = curl_easy_perform(curl);
//清除curl操作.
curl_easy_cleanup(curl);
}
return 0;
}