1. 程式人生 > >linux 編譯連結libcurl異常處理

linux 編譯連結libcurl異常處理

今天使用libcurl在程式連結的時候的時候提示了一下的錯誤:

strerror.c:(.text+0x3f3): undefined reference to `idna_strerror'
./Libcurl/libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow':
timeval.c:(.text+0x8f): undefined reference to `clock_gettime'
./Libcurl/libcurl.a(libcurl_la-url.o): In function `fix_hostname':
url.c:(.text+0x1ba5): undefined reference to `stringprep_check_version'
url.c:(.text+0x1bc3): undefined reference to `idna_to_ascii_lz'
url.c:(.text+0x1bcb): undefined reference to `stringprep_locale_charset'
url.c:(.text+0x1bfe): undefined reference to `idna_to_unicode_lzlz'
url.c:(.text+0x1c5d): undefined reference to `tld_check_lz'
url.c:(.text+0x1c73): undefined reference to `idn_free'
url.c:(.text+0x1c81): undefined reference to `tld_strerror'
./Libcurl/libcurl.a(libcurl_la-url.o): In function `Curl_disconnect':
url.c:(.text+0x6882): undefined reference to `idn_free'
url.c:(.text+0x6893): undefined reference to `idn_free'
collect2: ld returned 1 exit status

後面經過一系列的查詢,發現是缺少兩個依賴庫檔案,我也直接給出解決辦法吧:

在gcc連結的時候,在libcurl庫的後面新增兩個新的庫依賴:-lidn -lrt

因為上面報的那些錯都是因為缺少這兩個連結庫導致的。或者可以在進行libcurl打包的時候執行./configure後面新增上這兩個庫。