卷曲:(2)初始化失败

时间:2013-12-02 15:06:26

标签: linux curl

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

./configure  
make  
make install

如果我运行curl http://www.google.com,我会收到以下错误消息: 卷曲:(2)初始化失败

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

curl-config:

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  

我认为这与我的配置有关。

2 个答案:

答案 0 :(得分:4)

粗略猜测,您已将/usr/local/bin/curl二进制文件链接到系统卷曲库。

要验证是否是这种情况,您应该:

ldd /usr/local/bin/curl

如果它表示如下行:

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

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

如果您使用--disable-shared运行配置,那么它将生成.a,当链接到curl二进制文件时,它将不依赖于系统libcurl.so,而是它是自己的私人密码。

如果您正在进行交叉编译,那么您还需要交叉编译所有依赖库,这是另一个问题。

答案 1 :(得分:0)

据我所知,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