我在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
我认为这与我的配置有关。
答案 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