![](/img/trans.png)
[英]How to add certificate file to setting up libcurl HTTPS connection on the os which doesn't have file system?
[英]Setting up libcurl on Linux
我正在嘗試使用libcurl
,但未能正確設置。 過去幾個小時我一直在閱讀文檔,但我感到困惑和迷茫。 (這是我第一次使用帶有 C 的外部庫)
根據這些說明,我已經正確配置並安裝了libcurl
和curl-config
。 一個只包含<curl/curl.h>
編譯的最小 C 程序; 但是,當我運行任何示例程序(例如chkspeed.c
)時,我會收到以下“未定義”錯誤。
/tmp/ccprXNBB.o: In function `main': chkspeed.c:(.text+0x1bf): undefined reference to `curl_version' chkspeed.c:(.text+0x408): undefined reference to `curl_global_init' chkspeed.c:(.text+0x40d): undefined reference to `curl_easy_init' chkspeed.c:(.text+0x432): undefined reference to `curl_easy_setopt' chkspeed.c:(.text+0x454): undefined reference to `curl_easy_setopt' chkspeed.c:(.text+0x476): undefined reference to `curl_easy_setopt' chkspeed.c:(.text+0x482): undefined reference to `curl_easy_perform' chkspeed.c:(.text+0x4b0): undefined reference to `curl_easy_getinfo' chkspeed.c:(.text+0x50b): undefined reference to `curl_easy_getinfo' chkspeed.c:(.text+0x566): undefined reference to `curl_easy_getinfo' chkspeed.c:(.text+0x5c9): undefined reference to `curl_easy_getinfo' chkspeed.c:(.text+0x624): undefined reference to `curl_easy_getinfo' chkspeed.c:(.text+0x66a): undefined reference to `curl_easy_strerror' chkspeed.c:(.text+0x696): undefined reference to `curl_easy_cleanup' chkspeed.c:(.text+0x69b): undefined reference to `curl_global_cleanup' collect2: error: ld returned 1 exit status
以下是我對本指南中的三個curl-config
標志的輸出。 我不確定如何使用這些信息:
$: curl-config --cflags -I/usr/local/include $: curl-config --libs -L/usr/local/lib -lcurl $: curl-config --feature IPv6 UnixSockets libz AsynchDNS
如果不能解決問題,我將非常感謝任何可能使我朝着正確方向前進的幫助。 感謝您的時間!
你應該像這樣編譯它:
$ gcc chkspeed.c -o chkspeed $(curl-config --cflags) $(curl-config --libs)
以便 gcc 命令可以具有適當的CFLAGS
和LDFLAGS
用於編譯和鏈接libcurl
。
請注意,在使用 shell(如 bash)並執行如下命令時:
$ cmd1 arg1 arg2 $(cmd2 arg3)
shell 將通過執行它並使用cmd2
的stdout
輸出作為cmd1
的參數來評估第一個cmd arg3
。 假設cmd2 arg3
打印(在stdout
) hello
,那么 shell 將執行cmd1 arg1 arg2 hello
。
所以
$ gcc chkspeed.c -o chkspeed $(curl-config --cflags) $(curl-config --libs)
將被執行為
$ gcc chkspeed.c -o chkspeed -I/usr/local/include -L/usr/local/lib -lcurl
因為curl-config --cflags
的輸出是-I/usr/local/include
而curl-config --libs
的輸出是-L/usr/local/lib -lcurl
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.