c - C,不链接
问题描述
我有一个如下所示的 1 文件 C 程序,它试图进行简单的 CURL 调用。还有一个简单的 Make 文件。
看起来我的 curl/curl.h 没有被链接,导致所有对 *curl 的引用都是错误的。
我使用自制软件安装 Curl。我是否需要指定链接器的确切位置?
代码
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
int main(void) {
Curl *curl = curl_easy_init();
if(!curl) {
printf("curl init failed");
return 1;
}
curl_easy_setopt(curl, CURLOPT_URL, "https://api.coinbase.com/v2/prices/BTC-USD/buy");
CURLcode result = curl_easy_perform(curl);
if(result != CURLE_OK) {
printf("curl peform fail");
}
curl_easy_cleanup(curl);
return 0;
}
错误
名称@名称-MacBook-Pro c % 制作
gcc -o main main.c -lcurl main.c:10:5: error: use of undeclared identifier 'Curl' Curl *curl = curl_easy_init(); ^ main.c:10:11: error: use of undeclared identifier 'curl' Curl *curl = curl_easy_init(); ^ main.c:12:9: error: use of undeclared identifier 'curl' if(!curl) { ^ main.c:17:22: error: use of undeclared identifier 'curl' curl_easy_setopt(curl, CURLOPT_URL, "https://api.coinbase.com/v2/prices/BTC-USD/buy"); ^ main.c:19:41: error: use of undeclared identifier 'curl' CURLcode result = curl_easy_perform(curl); ^ main.c:25:23: error: use of undeclared identifier 'curl' curl_easy_cleanup(curl); ^ 6 errors generated. make: *** [all] Error 1
卷曲检查是否已安装
name@name-MacBook-Pro c % curl --version curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2 Release -日期:2019-03-27 协议:dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 功能:AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets
解决方案
您应该使用 CURL,而不是 Curl。
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if(!curl) {
printf("curl init failed");
return 1;
}
curl_easy_setopt(curl, CURLOPT_URL, "https://api.coinbase.com/v2/prices/BTC-USD/buy");
CURLcode result = curl_easy_perform(curl);
if(result != CURLE_OK) {
printf("curl peform fail");
}
curl_easy_cleanup(curl);
return 0;
}
推荐阅读
- bash - 如何在 bash 中用 & 号读取参数
- r - 如何变异为 3 级 dbl 变量
- c - 在 C(进程)中使用两个管道读取后无法退出循环
- directory - Python os.walk:如何在其子目录全部删除后删除目录
- java - 如何使用 Java 在 ZMQ 中接收多部分消息?
- string - Powershell在那里添加的字符串类型的ParameterizedProperty Chars属性是什么?
- javascript - TypeError:db.collection 不是函数(Firestore 和 Discord.js)
- winapi - 使用 TextOut char by char 与一次全部渲染水平线时的区别
- css - 如何显示这个 Scss/Sass 值?
- azure - 无法创建外部表