1. 程式人生 > >ubuntu 安裝libcurl庫

ubuntu 安裝libcurl庫

網上找了一個關於獲取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; }