C++ 对libcurl函数的未定义引用
我不能编译,我在Odroid-XU4板上使用Ubuntu。我如何解决这个问题?谢谢你的帮助C++ 对libcurl函数的未定义引用,c++,linux,curl,arm,libcurl,C++,Linux,Curl,Arm,Libcurl,我不能编译,我在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
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,并首先找到旧版本 编辑
/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
配置的选项是--prefix=`
-I/include
,链接器选项是-L/lib
李>
-Wl,-rpath=
。除非您是为另一台计算机编译,否则这是安装libcurl.so的同一目录,因此您可能会使用-L和-Wl,-rpath选项两次指定同一目录也许您也安装了另一个libcurl版本,g++在链接时会选择它?它只对7.56.0中新增的API调用发出警告…应该怎么做?我需要删除所有版本并尝试安装libcurl 7.56.0?您可以这样做;此外,您还可以安装并构建所需版本的Curl源代码,但不能安装它。然后让您的程序通过在新的Curl构建中指定它们的实际文件系统位置来获取新Curl版本的头文件和静态库。如果您必须从源代码构建新的Curl,那么安装新Curl的问题在于,构建一个缺少SSL支持或其他有用特性的版本非常容易。如果你能从发行版中获得你想要的版本,那不太可能是个问题;但您的发行版可能没有该版本。БчччСчч,您是否尝试了一些变体?不要将软件开发和系统管理混为一谈。开发自己的软件不需要触摸系统安装的软件。您应该。这对于libcurl尤其重要,因为它有无数的构建时配置参数和可选的依赖项。您不希望最终得到一个系统,在这个系统中,curl突然无法执行ssl、ftp或kerberos,或者……我已经考虑过了。在我看来,开发人员应该具备基本的管理技能。它可以减少依赖性,更快地解决问题。