【发布时间】:2017-10-05 06:27:20
【问题描述】:
我无法编译,我在 Odroid-XU4 板上使用 Ubuntu。我该如何解决这个问题?感谢您的帮助。
odroid@odroid:~/Desktop/curl_test.2$ g++ -o postit2 postit2.c -lcurl
/tmp/cc4MoKQE.o: In function `main':
postit2.c:(.text+0x2c): undefined reference to `curl_mime_init'
postit2.c:(.text+0x36): undefined reference to `curl_mime_addpart'
postit2.c:(.text+0x48): undefined reference to `curl_mime_name'
postit2.c:(.text+0x56): undefined reference to `curl_mime_filedata'
postit2.c:(.text+0xfa): undefined reference to `curl_mime_free'
collect2: error: ld returned 1 exit status
odroid@odroid:~/Desktop/curl_test.2$ curl --version
curl 7.56.0 (armv7l-unknown-linux-gnueabihf) libcurl/7.47.0
OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Release-Date: 2017-10-04
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM
NTLM_WB SSL libz TLS-SRP UnixSockets
【问题讨论】:
-
也许您还安装了另一个 libcurl 版本,g++ 在链接时选择了该版本?它只对 7.56.0 中的新 API 调用发出警告...
-
应该怎么做?我需要删除所有版本并尝试安装 libcurl 7.56.0?
-
你可以这样做;您也可以安装和构建所需版本的 Curl 源代码,但不安装它。然后通过在新的 Curl 构建中指定它们的实际文件系统位置,让您的程序为新的 Curl 版本选择头文件和静态库。如果您必须从源代码构建,安装新 Curl 的问题在于,最终构建一个缺少 SSL 支持或其他一些有用功能的版本非常容易。如果你可以从你的发行版中得到你想要的版本,那不太可能是个问题;但您的发行版可能没有该版本。
-
Евгений Сергеевич,您尝试过一些变体吗?
标签: c++ linux curl arm libcurl