我无法编译,我在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
答案 0 :(得分:1)
configure
的选项是--prefix =`。-I<directory-to-install>/include
,链接器选项为-L<directory-to-install>/lib
。 -Wl,-rpath=<directory-where-libcurl.so-lives-at-run-time>
。除非您正在为另一台机器进行编译,否则这与安装libcurl.so的目录相同,因此您可能最终使用-L和-Wl,-rpath选项指定同一目录两次。答案 1 :(得分:0)
链接器在其配置的路径中查找libcurl,它首先找到旧版本。
编辑/etc/ld.so.conf
以使链接器在具有新libculr版本的目录中查找。
或重新安装libcurl:
sudo apt-get remove libcurl
wget http://curl.haxx.se/download/curl-7.56.0.tar.gz
./configure
make
make install