curl:(2)初始化失败

我在Linux上安装了libcurl 7.33.0。 我使用下面的命令来安装:

./configure make make install 

如果我运行curl http://www.google.com我得到以下错误: curl:(2)初始化失败

curl安装在/ usr / local / bin和/ usr / local / include / curl的头文件中。

curl的configuration:

 sandesh@ubuntu:~$ curl-config --features IPv6 libz sandesh@ubuntu:~$ curl-config --protocols DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP sandesh@ubuntu:~$ curl-config --ca /etc/ssl/certs/ca-certificates.crt sandesh@ubuntu:~$ curl-config --cflags -I/usr/local/include sandesh@ubuntu:~$ curl-config --configure sandesh@ubuntu:~$ curl-config --libs -L/usr/local/lib -lcurl sandesh@ubuntu:~$ curl-config --static-libs /usr/local/lib/libcurl.a -lz -lrt 

我相信这是我的configuration。

疯狂猜测,你已经把/usr/local/bin/curl二进制文件链接到了系统卷曲库。

要证实这种情况,你应该这样做:

 ldd /usr/local/bin/curl 

如果它表示一条线,如:

 libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fea7e889000) 

这意味着卷曲二进制正在拾取系统卷曲库。 虽然它在编译时与正确的库链接,但在运行时,它正在拾取不正确的库,这似乎是发生此错误的一个典型原因。

如果使用--disable-shared运行configure,则会生成一个.a ,当链接到curl二进制文件时,它将不依赖于系统libcurl.so ,而是取决于它自己的私有代码。

如果你正在交叉编译,那么你也需要交叉编译所有的依赖库,这是另一个问题。

据我所知,Ubuntu默认包含curl 。 所以,如果你不需要特别的7.33.0版本,那么清除它并从库中重新安装。

 #remove everything you had with curl sudo apt-get purge curl #optional update sudo apt-get update && sudo apt-get upgrade #install it from repository sudo apt-get install curl